Time axis

A better time axis. This is not ready yet, and still has a few bugs, but I'm making this PR so it's easier to get feedback.

Here are some pictures:
![screen shot 2014-07-16 at 6 36 34 pm](https://cloud.githubusercontent.com/assets/4107323/3607870/d07da292-0d52-11e4-98ff-7418e039281c.png)
![screen shot 2014-07-16 at 6 34 28 pm](https://cloud.githubusercontent.com/assets/4107323/3607871/d1b1a870-0d52-11e4-9418-576a00c8efb9.png)
![screen shot 2014-07-16 at 6 35 31 pm](https://cloud.githubusercontent.com/assets/4107323/3607872/d56649da-0d52-11e4-8684-ca58526c81d8.png)
![screen shot 2014-07-16 at 6 36 07 pm](https://cloud.githubusercontent.com/assets/4107323/3607873/d70e4166-0d52-11e4-9ff0-e29e26864a47.png)

instead of using `this._d3Scale.domain`, `this._d3Scale.range`, maybe we can call this.domain() (or `this._getDomain`) and `this.range()`? this makes the code more tightly coupled to our own api and less to the internal implementation.