- move Semaphore and BoundedSemaphore from coros to another module; deprecate coros
- fix BoundedSemaphore to behave like standard threading's BoundedSemaphore behaves:
  raise ValueError if upper limit is reached instead of blocking.
- "raise Timeout" means customizing exception with Timeout(exception=RuntimeError) no longer works
- grep for XXX and QQQ
- classes in core should not crash even if improperly used
- use libevent 2.x's bufferevent for socket implemenation (or only for _fileobject?)
- do not include the standard tests in greentest/; run the standard tests unchanged through monkey patcher

