Call handler methods outside of consumer threads.

To prevent users from possibly blocking the RabbitMQ consumer threads, risking delayed processing of urgent messages, all handler method calls should be done in a separate thread. Ideally, these threads would be provided in an efficient manner such as with an `ExecutorService`.