Parametrised intervals

Interval arithmetic rewritten to use parametrised intervals.
Tests pass.
I think this should be changed by:
```julia
mid(a::Interval) = (a.hi + a.lo)/2
```
I guess the complications came from me, long long time ago