I reworked the listener system for EventResults.

I talked with roryee; he approved the idea of EventResult returns. I
finished reworking all the existing listener stuff to return EventResults
and all the listener generating stuff so far to catch and handle those
EventResults.

I noticed that this system actually eliminated some info that could be
important for debugging. Namely, before this change, the event generation
algorithms kept track of which listener cancelled the event if one did.
I'd like to see if there's a good way to work these EventResults so that
we keep debugging info like that and more. The best thought I've had so far
is to keep track of each EventResult as they're returned for a given event,
but I'm worried that this might not be efficient. I'll consider doing it
anyway; maybe I can optimize it some.

Signed-off-by: REALDrummer <conman.davey@gmail.com>
Merge branch 'master' of https://github.com/asusoda/Corundum