Improvements to rendering
@IanS5 contributed improvements to inputbox rendering, his changes have been merged/flattened into this commit. Thank you @IanS5
This implements 'render only when necessary' for drawing to the screen. Screen updates are handled by pushing a new custom event EVENT_RENDER to the event queue. The render timer cb has been removed, so this new implementation removes any of the issues that previously existed with multithreading.
CPU usage on the N900 is also drastically reduced: <1% when idle, ~10-20% when pressing keys, and 50-60% when running keyboard or unlock animations (as measured very scientifically with 'top')