Input event refactoring

- Refactored mouse input handling. It is now delegated to the focused
entity.
- Added new UI Modes and corresponding buttons.
- Tweaked debug text display to make it easier to push more lines of
debug.
- Shifted keyboard handling to World. Should be handled by a proper
KeyboardCursor object.