MongoDB storage driver

This supersedes #94 (cc: @iampersistent). 
The other drivers do block when polling, this is especially important for services such as SQS or IronMQ where each request costs money.

It would be fine to change the loops from a `while` to a `do while` if it is done for all of the drivers.

The interval is always `5` as there is no way to set it currently when using the consumer.