Requeue on reject

If a message fails to process properly, I'd prefer if the message didn't just get lost. Seems like that's what happens now. This commit makes messages get re-queued instead -- wondering what your opinions are?