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

There's a whole lot of `publisher` going on within this class, and even within this method. The point of having the class level variable is that if you set ``publisher`` on any instance of this class, you get back that same publisher on all instances of that class. 

This being the case, I would probably prefer something more clear here:

```
current_publisher = @@publisher || @publisher_channel
```

Pretty sure a better name is possible, but using the `publisher` local variable instance is asking for trouble down the line.