Add MWExceptionRenderer class and decouple DBError
- This handles the work of showing exceptions so that MWException does not have too.
- Simplify the DBError classes to regular Exception classes. Lots of pointless prettification has been removed, but DBConnectionError still gets the usual special treatment of a fallback page and Google form.
- Remove hacky file cache fallback code that probably did not work.
- Make MWExceptionHandler::report() wrap MWExceptionExposer::output().
- Make MWException::runHooks() wrap MWExceptionExposer::runHooks().
Change-Id: I5dfdc84e94ddac65417226cf7c84513ebb9f9faa