Add preliminary code for supporting charts.  Create a Chart class that can draw sample data at the default zoom level, and add a utility in Timeline for adding a chart with a given height.  Create some helpers within Timeline to manage the viewable timeline area, as well as a buffer just outside the viewable area, so that the chart can have a buffered area to allow for scrolling.  The chart cannot infinitely expand its width like the timeline can, because it uses a canvas for drawing, which has a max width of a few thousand pixels, after which it vanishes.
Merge initial chart changes with fixes and new data.