Change PublishingTask state on error or success

When something fails in pushing to panopticon let the PanopticonRegisterer raise its own error. This will bubble up to the worker allowing us to rescue from specific error types. In the case of ClientError we should abort as this is unrescuable (ie duplicate slugs). In the case of a ServerError we should retry a certain number of times. In the case of any other error, we should abort.

All errors are logged with Airbrake in order to notify us of persistent failures in publishing.
Add association for Manual and PublishTask

This commit adds an association marshaller between Manual and PublishTasks allowing us to make the most recent PublishTask available to the specialist-publisher frontend for feedback on how far the publishing task is from completion.

This association is read only!
Provide feedback of state of publishing manuals

Display a user centred message to notify the user of where the PublishTask is in the queue so that they are aware that when they press 'Publish' that there will be some time before the item is "published".
Assure errors are raised when recoverable errors occur
Log version mismatches when publishing manuals