TS-2935: clean up semaphore platform code

Darwin does not implement anonymous semaphores, but that's no reason
to litter #ifdefs all over the place. Clean up the ink semaphore
interface to provide a consistent anonymous semaphore interface.

Remove the Ethread semaphore code because it is never used, and
it's not clear that it could be used.