Moved the input device support into its own namespace

  - Added support for defining input devices directly on the window
    when it is created
Added formatting of the game statistic numbers
Added try catch statement to ensure printing of exceptions in the update and render fn
Added a new helper function used to create a game frame in a single call