Connection Pooling

I have been experimenting with various techniques to add concurrency to the queue_classic worker. So far I have experimented with a threaded worker (#159) and a forking worker. It is worth noting that I had used [threads to manage the forking](https://gist.github.com/ryandotsmith/5940245). In both experiments I needed the ability to work with queue_classic's database connection in thread safe environment. This pull request lays out the foundation for safe, robust connection management so that we can easily build some sort of concurrency in the worker.

@senny I still think your adapter idea will work here. Instead of creating adapters for connection, we will need to create adapters for pools. I am really interested in creating an adapter for active record and for sequel.