Extending the the input system implementation.

- Now properly handles KeyUp/KeyDown states for modifier keys (Shift, Ctrl, Alt)
- Now handles the full range of input keys
- Now accepts input bindings
- Now accepts component registrations

Remaining work:

- Load keybindings from an settings file
- Need a better solution for key repeats (only get repeats from a single key when multiple are down)
	- Maybe bind concepts to events instead of (event, action) pairs and send both the up and down events?

- Need to more clearly define the callback API for registering a component to a concept.