Time Axis, Formatter, and Scales

Moved a few things around to deal with time related things better. Here's a summary of changes

-- Time scale no longer descends from Quantitive Scales. The reason for this is because in d3, time scales do not descend from quantitive scales. Additionally, I wanted to take advantage of the functionality from d3 of creating ticks by specifying an interval (i.e. a tick every 2 weeks).
-- Time formatter will be the default formatter for dates. This is a multi-level format which will try to dynamically choose the level of granularity of the tick labels. For instance, it can generate tick labels that look like [Nov, Dec, 2015, Feb], or [11 PM, Aug 5, 1 AM]. The functionality of this should match that found in the default [d3 multi time format](https://github.com/mbostock/d3/wiki/Time-Formatting#format_multi)
-- Time Axis takes a lot of functionality from existing linear scales, though it uses a TimeScale instead.

Most of this code is copied over from other classes. Additional unit tests have been added for time formatter.