A golang implementation of a semaphore.