Further development of the input system.

- All input concepts now have a boolean value associated with their bindings. This should
  generally map to KeyUp/KeyDown or similar states, though it may be useful to invert it
  for concepts such as Sneak. It is not necessary to bind both true and false for a given
  concept as this may not always make sense (e.g. you can't unfire a gun)

- Added a Locomotion component to store current movement intention separately from actual
  position. This can be used by the physics system in conjunction with the PositionComponent
  to handle actual movement.

- Stubbed out some basic movement "physics". This should be moved into an actual physics system.