Fix bugs with interval multiplication.
Add an implicit to support Rig[Interval[A]].

Since intervals don't have (reliable) inverses we can't support Ring,
but we do have useful identities:

  Interval.point(Ring[A].zero)
  Interval.point(Ring[A].one)