Message reject/requeue implementation

not sure exceptions(or maybe throw/catch) is the best way to go, but here is a quick implementation for [#100](https://github.com/gocardless/hutch/issues/100) 

What do you guys think about it?