Working activity tab

The activity tab renders a tree list of events based on their depths in the (event) call stack.  The tree list is collapsible at each level, and individual events are clickable to reveal more info in the info panel area.  Currently, the rendered set of events is a subset (pruned tree) of all events, filtered to include only events that have listeners or have child events.

Resolves #101 #103