Add proper webapp error-handling and logging.

There is now a new type of error that can be thrown from a route that
404's the current page.  Any other errors thrown from a route will
render a debug page with a serverside 500 error.