Changes error handling from a view decorator to middleware

As a result, only instances or children of RenderableError are caught by the middleware.  This is different from the previous behavior, which caught and rendered all errors.
The intent here is to declare the error message and status code in one place.  It also reduces duplicate code in testing that errors with this message and status code are raised