Input on a diet.

Input is now evented and passes a callback into rubyland.
Things still need fixing, but this now effectively means we're
not focusing on having both a C++ and mruby API at the same time.