Made handlers a little more explicit, but...

...they will need to be looked at again, at least once. I've got this typed up about them:
* event: a function that takes a single game.events.Event parameter and returns True if the event
    was handled, False otherwise.
* key: a function that takes a single libtcod.Key parameter and returns whether the key described is
    the activation trigger or not.
* activate: a function that takes a single game.widgets.Widget parameter. Only called if the 'key'
    handler returned True.
* dynamic_text: a function that takes no parameters and returns a string. Only called if the 'event'
    handler returned True.

Some of these (key, especially) need to change, and either way they all need to be enum'd somewhere.
For now, though, this is a reasonable stopping point.