Threaded consumers.

See http://threebean.org/blog/threading-moksha

This should break apart the consumers given each consumer its own
thread(s) fed by a thread-safe queue.
Fix the tests after 127d0f4
Changes as per pull request review feedback.
Merge branch 'feature/threaded-queues' into dev