Feature/gevent

Hi there,

First up, I don't think this branch is ready for merge, I'm just after some comment really. At a minimum, I need to add docs and (more) tests.

This branch contains a gevent-based consumer implementation, as an alternative to the current threaded consumer.

I'm interested to know what you think. I'm going to be using this implementation in our system (it makes our code a lot simpler, as I don't need to use internal zeromq sockets for cross-thread communication) and it also has the added bonus of working around the socket timeout issue I raised (#7) and still providing a way to stop a consumer even though it's using what would normally be a blocking socket read.

So - what do you think? Is this something you'd be interested in merging?

It introduces a runtime dependency on gevent and requests, but only if you actually use the gevent-based consumer.

You use the consumer by calling `definition.get_consumer(handler, consumer_type='httpgevent')`.