Added Spatial::Rectangle2.
Window class returns unique pointer to Observer::Window.
Created utils/gl.h for managing inclusion of OpenGL header files.
Re-factored Window and Observer::Window into Window::Window and Window::Observer.

As part of the re-factor, all GLFW specific code was moved into src/Window.GLFW.cpp. Also, the rest of the application was adjusted to the new classes.