Bugfix: Replay the sections with the correct time intervals

There was an "off-by-one" error in the time intervals used for generating the GpxSection observable. The first section was played for the time of the second section, the second for the time of the third, and so on...

By moving the sectionsEnumerator to a local variable and making the state of the Observable.Generate method being the time interval, we can intialise the state with the time of the first section and iterate from there.
Bugfix: Replay waits for the time of the last section before completing

The Replay observable would produce the last GpxSection and then complete immediately. It should wait for the time interval between the start and end points in the last section before completing.

The simplest way to achieve this was to stick a null GpxSection at the end of the enumerable. The observable will then...

+ produce the last section
+ wait for the time interval between the start and end points in the last section
+ produce the null section
+ complete immediately