Input / Application Implementation

The application class now extends the input class, input provides a set
of callbacks to your application source allowing you to manipulate your
application dependent on the event, no need to write your own event
loop.