Interval: add tests, fix errors

- Fix error that made `hasOverlap` non-commutative
Split Interval, add tests, bugfixes

- Split Interval to Ptt.Time.Interval and Ptt.Time.Clock
- Add more tests for Interval module
- ...and fix the found bugs in Interval.difference function