Layout change for courses. Introduces course-wrap-with-chat

The chat side-panel has been promoted from a panel within the content viewer to a wrapper directive that can surround most of the course views. It places a global in Impressory.Viewing.Display.chatOpen so that when the view is re-created (on a layout change) it remembers whether or not it should be open.

This simplifies the viewer significantly, and removes the need for the Layout angularjs controller. TopNav's panels are now controlled by the TopNav controller.

Directives course-wrap-with-chat and course-chat-toggle have been included for displaying and controlling the chat panel

Still to do: at the moment, course-wrap-with-chat wraps its content in a "position: fixed" element, so that the scrollbar sits next to the element (rather than on the right of screen, which would cause a double-scrollbar with the chat and page scrollbars side by side).  However, this might not play nicely on iOS, as it might not support momentum scrolling. That can be resolved in a future commit.