Changed class Interval fields from lo and hi to lo, hi and value.  So
class Interval is now parameratized: Interval[T].  To accomodate this
change, the functions signatures in IntervalTree had to change from
f(lo: Int, hi: Int, value: T) to f(v: Interval[T]).

The benefit is a cleaner client interface since Interval takes care of
its own value.

The tests were also modified accordingly.