* Timeline rows are now canvases with 2D contexts where samples are rendered using the canvas API.
* Moved time range into its own class.
* Record an explicit thread frame history.
* Timeline moves to latest sample on each update.