Movable Refactoring Update
- Further simplified Movable class, removing redundant state
  transitions. Instead of having a press and release transition for
  each direction, there is only a 'bump' (i.e., press) for each
  direction.
  - Keyboard events can be mapped onto the corresponding bump
    transitions. Each keyboard event does not need its own
    transition method.
- Removed IMovable1D interface. It is unlikely for other modules to
  require strictly one-dimensional directed motion, so the
  interface was deleted to avoid class proliferation.
- New point of abstraction is the IMovable2D interface. The first
  and so far only implementation wraps two Movable objects, each
  representing direction in the x- and y-dimension.