WIP: Better errors

* Support for automatically serializing as JSON on publish
* Error messages when attempting to publish bad values
* Error messages when attempting to `finish`, `touch`, `requeue` if the message has timed out.