Better error handling in base consumer implementation.

Currently `vumi.service` consumers don't handle errors very well. Errors should be logged , `rejected` and sent back to RabbitMQ for retrying (for a start).