Adding Interval class
Adding UnexpectedTypeException
Refactoring SegmentMetadata* classes to utilize Interval class