Bump nscala-time, sbt versions to latest.
Added a semigroup instance for Interval defined as "intersection".

I think of this like the product of a Ring, with an annihilating zero,
but there's no "union" operator for Intervals in Joda-time.
overlap is defined here:
http://joda-time.sourceforge.net/apidocs/org/joda/time/Interval.html#overlap(org.joda.time.ReadableInterval)
Says it returns null on no overlap, but that throws a NPE in the
scalacheck properties. So instead I return an interval that starts and
stops at dawn of epoch to serve as the "empty set".
Merge pull request #22 from LeifW/semigroup_interval_instance

Add a semigroup instance for Interval defined as "intersection".