Do not throw a CancelledError when acquire() is called after a cancel() has been called.

Patch for issue #87: Reset the Semaphore.cancelled state to False when someone intentionally calls Semaphore.acquire(). Regardless of whether or not the user has called cancel(), if they call acquire() they probably want to acquire the lease.