Feature/tlt 426 custom error framework

Note: this PR requires the changes with the same feature branch name (feature/TLT-426_custom_error_framework) in icommons_ui and django-canvas-course-site-wizard).

* Adds draft versions of custom display error messages to settings, to be used with subclasses of RenderableExceptions
* Adds icommons_ui logging to settings files
* Updates project-level error page 500.html to show RenderableExceptions if rendered by the custom error page mixin 
* Refactors 403, 404, 500 errors to a single error page 500.html to adhere to DRY principles

The setting is tied to the mixin you created, which is set on a per-view basis and works very much like the `TemplateResponseMixin` that's native to Django.  You wouldn't have a settings file for each template that you define in your app and I think the same logic applies here.  If you have an app with many several or many views and they're all using the same error template, then I think a better approach would be to subclass the mixin for that particular app, set the template value appropriately, and use that subclass throughout your app.  Settings are best for secure values or values that are environment dependent.  In this case, the setting would be the same across environments and it's not secure.