Major changes to key binding system

Because the key bindings system handled through state entities were ineffective for things like virtualized key presses, game-wide configuration, etc., key binds were moved into a separate class, intended for only having a single instance of in a program. Contains (or should contain eventually) everything need to add any key bindings, search by key or by function or by category (category searching unaccomplished as of now), remove bindings, print bindings and of course call bindings (using the simple "call" function, maybe there should be a "keybindings.functions[func]" call equivalent?).

Implementation of the "keybindings.functions" table item structure has left me desiring answers:
- Is there a way to get a key from a table as a string? A single key? pairs returns key-value pairs, but what for a single key, and for just the key?
Merge branch 'master' of https://github.com/SweedJesus/LuaGame

File differences, mostly in readme's and misc files, not source