Separate publish from consume

Currently publishing messages back to RMQ is handled by the `QueueManager` class. Add a hook point in `QueueManager.publisher` to allow an external publishing adapter to be specified instead. Doesn't change anything within tom_queue aside from that. If the publisher hook isn't assigned to anything, then we continue publishing by the original tom queue publishing channel. If the hook is set to something, we publish via that.

The publisher has two expectations, which are codified in the active_rabbit_publisher_spec. It should respond to `topic(name, options)` and return an object that responds to `publish(message_body, message_options)`. ActiveRabbitPublisher is a working implementation of this.

There's a bit of whitespace tidying up in here too, so perhaps [viewing the diff ignoring whitespace changes](https://github.com/fac/tom_queue/pull/7/files?w=1) is a good idea.

(Also adds a way to run tests from rake & specifies some configuration for later versions of rspec in the helper.)

Should the spec care about this? Should it not instead check that the handler argument isn't equal to the internal handler version? That's the side effect you're trying to test here.