Don't persist mutating Events in Gee.TreeSet: Bug #732671

Component.Event's properties mutate, which can cause cogency problems
in Gee.TreeSet's red-black tree that cannot be solved externally.
This change stores Events in HashSets (which use an equality function
which does not deal with mutable properties) and sorts them only when
needed.

See also bug #736444.