Improved exception messages

This PR should close issue #201.

All exceptions are now assigned a six-digit random id and now generate a one-line log message including that id, the present user's username, and the path to the page which raised the exception.

In the event that an email was sent to developers, the contents of that email are also logged.  The email message now contains the URL and params which generated the exception.

Exception error pages now use a common template which includes the error id and the list of information users should include in emails to developers.

To test this functionality, the admin console now has the ability to raise exceptions with the click of a link.