Fix TimeRange calculations

We weren't taking into time ranges that didn't already exist in the range, nor
were we taking into account new ranges that covered multiple existing ranges, so
fix that and the time accounting associated with it.  Also change the time limit
arg to a float so the math works out right.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>