Test case improvements.
Rebuilt project file (also renamed for clarity.)

Mixed-language projects don't work in Frameworks.
Frameworks don't work in command-line tools.

The new project has an app target which hosts the unit tests; the app does nothing else, but this works better than the old regime.
Additional cleanup of old project file.
A third channels implementation, based on semaphores and queues.

Each thread waits on its own semaphore, which has preliminarly been enqueued. When there is work to be done, a semaphore is obtained from the relevant queue, and that specific thread is awoken. The queues of semaphores are fairly quick

Only the single-element buffered channel exists so far, and it is a simple adaptation of the pthreads implementation.
So far it does not take advantage of improvements possible by this design.

Benchmark: The test case without contention beats the pthreads version by ~7%. The test case with contention is about the same.