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