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.
Could be, but that adds unnecessary complexity for the current implementation.  The intent of a renderable error is that you give it a message to be displayed to the user