PYTHON-436 greenlet/gevent support
* Copy Condition as well to allow Semaphore to support
  greenlet/gevent pools without patching thread.
* Patch Condition with Python 2.x timeout support.
* Rename NoopSemaphore to DummySemaphore (gevent has one named this)
* Add greenlet/gevent support to Semaphore, BoundedSemaphore,
  Condition, and SynchronizedCounter.