HUGE general restructure.

GameStates are more fleshed out, binds are now in the game state input
managers. Input manager and window manager for each game state, with
references upwards. Old key bind system for windows remade to a very
similar system, but using IInputReceiver for everything that is to
receive binds. I don't even know everything I've done. It still runs,
that's a start, and in theory, game states sort of work?