Add semaphore-compat v2 implementation
In the context of gitlab.haskell.org/ghc/ghc/-/issues/25087, https://github.com/haskell/cabal/issues/9993 and https://github.com/ghc-proposals/ghc-proposals/pull/673, we implemenent semaphore-comapt v2, featuring:
- A new version of the protocol, maintaining backwards compatibility and graceful degradation as far as possible. See BackwardsCompatibility.md for more details.
- Replacing the POSIX implementation from shared memory/libc based to one based on unix domain sockets.
- A comprehensive testsuite
- CI jobs to test and verify backwards compatibility guarantees.