[Semaphore] make default constructor more explicit

The CancelFutureTest fails for libc++ because it uses two
emper::Semaphores to coordinate the involved fibers.

Using gcc and stdlibc++ the default constructor initialized the
semaphore count to 0.

The default constructor using clang and libc++ does not initialize the
semaphore count member and thus causing the CancelFutureTest to misbehave.
53 jobs for fix-semaphore-for-libc++ in 16 minutes (queued for 3 seconds)