- Fixed an import error in the interface backend, and added an expanded definition of Keyboard
- Gave the events system an API for adding event types, and put it to use

This has reasons, but the stuff that depends on this is so gnarly I won't upload it without discussion.