Error controller to handle HTTP errors.

Fixes #257 and #310.
I'm not sure how semantically an `HTTPErrorException` is-an `ErrorRedirectException`. For example, 404 is not a redirect.