Added support for passing in an exchange when creating a task.

You can now create exchanges and use them when creating tasks:

```
// Create an exchange on connect and reuse it later.
client.on('connect', function() {
    var exchange = client.broker.exchange('my_exchange', {type: 'direct', durable:true, autoDelete: false, confirm: false});
    var task = client.createTask('tasks.do_something', {}, exchange);
    var result = task.call(['Hello World!'])
});
```

Existing code (not specifying the exchange) will use the default exchange.