Multiple Binary/Counting/Count+Timeout semaphore implementations in Go.