Error handler cleanup

More block error handling.  I moved the ```rescue Bunny::PreconditionFailed``` out of the worker since the broker is the one that handles queue creation.  Much of this work is similar to what went down in #65, and I agree with @apneadiving that the configurations should become smarter objects so we don't have to do things like
```
host = @config[:mq_host]
port = @config[:port]
@connection = Bunny.new(host: host, port: port, ...)
```
in connection methods and pass around values just to create error messages.  But that's for another day.