Add another bounds check to Timestamp.AsDouble

Adds a bounds check to Timestamp.AsDouble so that the highest value
assignable will be the double equivalent of "99:59:59.9". Adds testing
code for this condition as well to TimeStampUnitTest.
Adjust values of Timestamp Max values

Adjusts max Timestamp values and adds unit test cases for them.
Add bounds check to Timestamp.AsString

Adds a bounds check to ensure that the given string value is
lexicographically less than Timestamp.MAX_TIME_STRING.
Small fix to TimestampMaxValueEqualityTest
Reorder Timeline OnPaint order

Moves the drawing of Caption labels to the bottom of Timeline.OnPaint()
so that the labels are drawn over top of everything else.
Change Timeline Zoom code

Changes Timeline's zoom methods so that Timeline will set the
LeftBoundTime to 0 when zoomed out enough to see the entire video.
When zooming in, the Timeline will center on the playhead.
Remove Timeline.RedrawCaptionsRegion()

Removes RedrawCaptionsRegion() from Timeline. All references to this
method have been changed to Timeline.Redraw(), which replaces the
Timeline.RedrawInnerRegion() method.
Draw Location Labels on solid background

The area behind the location labels is now a solid white so that
captions will not appear behind them.
Remove Setters for Timeline Properties

Removes setters for Timeline.RightBoundTime and
Timeline.CenterBoundTime. They should not be set individually, but
through the Setter of LeftBoundTime

Changes setter of LeftBoundTime to set values based on lbTime instead
of value.