Ability to declare Rabbit broker options

This PR adds the ability to specify the entire broker options object instead of just the broker url. The reason I changed this was because the AMQP stack I'm running requires SSL and it looked like I was unable to specify that.

This way, you can make a celery client like the following:

```coffee
client = celery.createClient(
  CELERY_BROKER_OPTIONS:
    host: config.amqp.host
    port: config.amqp.port
    login: config.amqp.login
    password: config.amqp.password
    authMechanism: 'AMQPLAIN'
    vhost: '/'
    ssl:
      enabled: true
      keyFile: config.amqp.ssl.keyFile
      certFile: config.amqp.ssl.certFile
      caFile: config.amqp.ssl.caFile
      rejectUnauthorized: false
  CELERY_RESULT_BACKEND: 'amqp'
  CELERY_DEFAULT_EXCHANGE: 'celery'
)
```