Tidy up formatting.
Update error page to contain more possible failure modes.

Refs #54
Split the view into a separate service.

This allows re-use of most of the service definition in error pages.
Disable caching in the error page as that could be the reason the error
has been raised.

Fixes #54