rewote spec for semaphore, remove unnecessary code
before(:each){} is same as before{}
added documentation for ConditionVariable
removed superfluous code in Mutex