This rewrites Profiler2's UI to use D3 and CanvasJS instead of custom functions.
Cons:
- Somewhat slower for the timeline in D3 which now uses svg elements, but it seems OK in the general case.
- Dependency on canvasJS / D3
- requires a locally-running http server (see run.sh)
- Basically guaranteed to only work in Chrome but I think the former version did that already.
Pros:
- much less code which makes this actually upgradable. I've also cleaned up things.
- more interactivity: clicking on stuff does things and zooming is more convenient.
- much easier to expand.
I need to add back support for "Live" profiling, but tbh that's not the most useful feature and I might just kill it.