Streamline HLS segment playback

* Implement timestamp support in the `range` and `at` functions in the
  RewindBuffer MemoryStore. Allows a timestamp to be passed to RewindBuffer's
  `pumpFrom` function.
* Use `pumpFrom` with timestamp in HLSIndex's `pumpSegment`
* Split BaseSource.Debounce into its own class in `util/`
* Add new tests for RewindBuffer stores (currently only MemoryStore)