Interfaces for events; simpler addEventListener functionality

The simple idea behind this is to allow for a simpler approach to event
handling.

If implemented - literally - by the classes who use these events, a
simple call to something like TextField would be a good addition (it's
more C#-esque).

`myTextField.onMouseDown = tfMouseDown;`

Just a suggestion.