Moves processing logic

![dumb_dog](https://cloud.githubusercontent.com/assets/527874/3298502/507be156-f602-11e3-8f9a-d7cc0ed735f3.gif)

This PR moves the processing logic out of the publisher and into a separate class.

The processor can then optionally be injected into the publisher, allowing different consumers to process the msg in different ways, or the default way provided by the publisher.
rogue puts