Allow building a `Connection` to be built with a hash

This updates the `Connection` to allow passing it a hash.
Previously it just took a config object that it used to build its
connection pool and redis connection. Now if a hash is built, it
is converted to a config object and used. This way, either a
config object or a hash can be passed.