Widget performance improvements.

We're doing a lot of extra work each frame udpating widgets, primarily because we are triggering layout when nothing has actually changed.  This change specifically does three things.

1. Setting the TextContent property of SVG forces layout to be computed, so only set it if it has changed.
2. Timeline did not have all of it's members defined in the constructor function.
3. Timeline should cache the last xPos and only set styles in `updateFromClock` if data has changed.

The truth of the matter is that we migt be able to change our knockout usage to short-circuit some of these things even sooner, and the overall timeline code can probably be further optimized.  For now though, this gives significant improvement.

Thanks to @shunter for tracking this down.