Automatic uniforms infrastructure

Ability to add shader uniforms that get automatically updated by the
game loop.
Keyboard support

Added keyboard state but not for modifiers (shift, etc).
Credit is due to https://github.com/depp/keycode for the keycode support
code.