Fixes d3_time_interval to return regular time intervals

The d3_time_interval function used "number" in order to implement steps,
which led to incorrect behavior. For example, the "number" function for
months returned date.getMonth(), which is 0 for January, hence if the
step input to range was greater than 12, an array containing all the
January 1 dates between start and end would be returned. Because number
was only used (incorrectly) in the range function I've gone through the
time implementations and removed the specific cases.