Added a delegate system for key presses

Keys now can make use of handler functions passes to it via
`Keys.addHandler`, which makes it a lot easier to deal with key
controls in other objects.