Improvements to TimedEventQueue.

Events are now cancelled given their "unique" event_id instead of the event pointer
itself (which may be reallocated in place if we're unlucky). Also the ability to
cancel multiple events matching a predicate has been added.
2 files changed