Use correct path module for new executable name
Generalised EventTree to TimeTree

This sort of tree is required for pretty much anything that ThreadScope
graphs, so I think it makes sense to aim for a generalisation. This
costs us a bit of performance due to boxing, but I feel it makes it up
in terms for code maintainability.
Track DebugEntry children as well

Quite overdue - this should make navigating the debug tree more
convenient. Also did some minor optimisations.
Support some ghc-events changes

Introduction of SampleVerb (which hopefully won't confuse too many people)
and sample weights.
Renamed frequency to weight

It's actually wrong to talk about frequencies for heap profiling
Removed dead code, comments, whitespace
Require more samples by default

Also only count the samples for the currently selected sample type.
Improve name printing for heap profiling

Recognize _con_info, z-decoding for typical constructor names.
Sample maps

The goal here is to quickly get an overview on where in the profile
certain IP ranges appear. We optimize mainly two aspects - first, we
build a map with all samples of a certain type that can be found in the
profile (this will probably be handy for other things too). Second, we
make extra sure that the sampling loop doesn't do double-checks or ends
up using IP ranges where higher-priority ones exist. The result gets
converted into a time-map for fast overview generation.
Timeline hints

This highlights an area on the time-line corresponding approximately
to the proportion of time spent for the selected profiling noun.

Note that we do this exactly for the activity graph - which is quite wrong
if the profiling verb selected happens to be heap allocation or heap data.
We need heap the actual allocation / heap data profile graphs to draw our
hints over. Yet another TODO that should be right around the corner now...
Reworked core subsumation and folding

Remarkably hard to get right, not a good sign. This new solution
guarantees that we never ran into the situation where we have the same
Core code appearing twice, triggering tag name collisions.
Minor threadscope.ui change
Working
Cleanups
Initial task visualization
Some task rendering changes
First steps to generalise the layout algorithm a bit

This is really two steps... First finding a hierarchical tree structure
in the graph, then finding a good arrangement for it. This tackles the
first part.