This change allows users to specify any of the supported options in node-amqp thus giving full control over any resource they create. It also slightly modifies the client API signature to better distinguish between option types (i.e. exchange vs queue vs message) and makes interface clearer. Furthermore it allows to specify a different route key override when writing messages instead of using setsockopt() on every call. Also it is now possible to delete a permanent queue by adding two parameters (queue name and delete options) to the destroy() function.

This code does not make any changes in the underlying code logic. It simply makes things more transparent. Because of the slight API change, it requires a minor version number change.