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.)

Ah, that's a good point. I think my brain doesn't spot that as a variable/method shadow because one is a class method and one is a local variable - they can't collide. If we added a local method to mask `self.class.publisher` we'd be shadowing though. I shall fix :grin: