Interval: update setters to preserve integrity

If the manual setting of a start or end point would invalidate the
interval, the corresponding end or start points are updated to be valid.
Add equality methods to Interval/ClassifiedRegion

Factored out the Fusion#sameTile method, as it makes much more sense to
put that logic in the Interval and ClassifiedRegion classes themselves.
Interval/ClassifiedRegion: rename ignoreOverlap

Changed this flag to "exclusive" as it makes much more sense this way.
Create unit tests for new classes

Added unit tests for Interval and ClassifiedRegion classes.