ENH: Mapping of events to string names

Added mapping of events to corresponding string names and
a convenience methd MergerTreeEvent::GetEventString which will
decode a bitmask to the corresponding set of events.
ENH: Refactoring of merger-tree data-structure

This commit changes complete the underlying data-structures
for the merger-tree. Notably. Edges, are no longer explicitely
stored. Instead, each node now has a list of descendants and
a list of progenitors.