Created an application type, which recieves callbacks from glfw. In
order to make an actual application, this should be inherited from, and
the methods should be overridden
Added a run method to Application, which begins a main loop. The main
loop is responsible for calling the render and update functions as well
as polling for events.
Merge branch 'dev'