[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.