Multithreaded support for Cleopatra

Opening this pull request to get feedback. Histogram rendering and selection works.

There are a few smaller things that still need to be done (use of requestAnimationFrame, visual effects, etc.) and I'm sure there are things I forgot to implement when rewriting code because there were no docs or unit tests for me to check against.

Remaining:

- [x] Use `requestAnimationFrame` for better performance.
- [x] Clicking on a sample block in the timeline no longer selects the sample in the tree view.
- [x] Selecting a sample in the tree view no longer highlights the samples that match in the timeline in green.
- [x] Clicking on a different timeline should 'select' it and replace the tree view with the samples for that timeline.