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 filename "error.html" seems generic enough that a project could have it defined for another purpose.  I'd recommend using a Project-level setting that can be overriden, but default to something like "ab_testing_tool_error.html".