Extract all replay and capture tasks in TimelapseModel into public
APIs. Reorder functions so task creation functions  are all together.
Cache element.offsetWidth in TimelapseScrollView when recalculating
widget and canvas size. It was being queried on every animation frame,
and in some situations forcing a re-layout and causing severe
performance degradation.
Create TimelapseScanner.segmentedScanForRegion(), and reimplement
TimelapseBreakpointScanner.scanRegion() in terms of scanner API
callbacks. Addresses half of #162.
Implement TimelapseScanner.linearScanForRegion. Extract common
implementation details between linear and segmented scans.

Closes #162.