Worker graceful shutdown implementation
Exit normally when stopping, and abnormally when aborting
Use symbols instead of strings to define the keys of the mongo auths option

It seems mongo-ruby-driver v1.8.4 switched from strings to symbols when referencing the MongoClient::@auths hash

https://github.com/mongodb/mongo-ruby-driver/commit/6428bf699697dbd93622e0a411b5b153295bfe4e#L1L244
Fixed mongo_spec to work with mongo >= 1.8.4
Updated mongo backend to work with mongo > 1.8.3

Starting in Mongo 1.8.4 the keys of the auths hash are symbols. The qu-mongo backend probably shouldn't care how mongo keys its hashes so I updated the code to avoid manipulating auths directly.

Also, the Connection class appears to be deprecated so I updated this to use the replacement MongoClient instead.
Merge pull request #65 from joshfreed/master

Fix for issue 64 and mongo > 1.8.3
Make database name defaulting in mongo more robust.
Support boxen mongodb url for mongo.
Support boxen redis url for redis.
Require latest mongo.

Without forcing at least 1.8 the specs fail because Mongo::MongoClient
doesn’t exist.
Require 3.2 for rails.
Latest exceptional.
More specific env var handling for mong spec.
More specific env var handling for redis.

Also, we dont care what host port, just that we have namespace and
such. Let redis do its thing from the url.
Add script/test.
Add script/bootstrap.
boostrap in test and make test able to run 1 or more spec files.
Add as_json to payload.
Remove autoload in favor of require.

autoload has/had thread issues. Requiring worker is fine.
Adjust test to be more like real life.

The payload that is passed to release is always the payload that is
returned by reserve.

This allows backends to tack on a bit more info for use in release and
completed.