initial RangeHourly implementation

Efficiently produces contiguous completed ranges of recurring tasks.

Already in:
* RangeHourlyBase general API
* RangeHourly subclass which automagically facilitates filesystem listing
  as the most common case. Supports tasks with multiple outputs and, as a
  convenience, WrapperTask hierarchies as well
* Convenient CLI usage

Coming soon:
* Events emitted with relevant metrics
* RangeDaily/Weekly/X-ly generalization
* More sanity checks to behave gracefully when preconditions aren't
  satisfied

Wishlist:
* More common cases facilitated, that are not like filesystem listing
Merge pull request #480 from spotify/ulzha/range

RangeHourly