Rewrite segmentutil to be simpler and more correct

Also include some timing code that I found useful when debugging and probably doesn't hurt to have included.
Remove percentage basals with nothing to override

If we get overlapping scheduled basals, we throw them away.  This means that there are sometimes areas where we have percentage temps that don't have a scheduled basal to apply to.  We need to throw these away as well, because we don't know what the actual amount delivered was.
Merge branch 'master' into cheddar/segmentutil-betterification
Handle throwing away overlaps better

Had to move smooshing to a later stage, but not overlaps are handled better.  Also included a bunch of new tests to verify the behavior
Merge pull request #117 from tidepool-org/cheddar/segmentutil-betterification

Rewrite segmentutil to be simpler and more correct