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)

caching will speed this up, but i think we can actually do a lot better + have simpler code using some heuristics.

in most cases, the format string defines a fixed number of characters, eg `%Y` is always 4 digits, so we can get a pretty good approximation of the width of all the strings coming from that formatter without needing to do per-tick computation. the only exception really is full month names, but we can be pessimistic and assume it's always ["September"](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCIQyCkwAA&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNU9JoFKlaZ0&ei=nGnIU4fLBcWkyASXzoDgBg&usg=AFQjCNFYxTm4KgcnL-hLleUoh8ock2ggSQ&sig2=pHOeH1Fmy3PvCssTsG0oZg&bvm=bv.71198958,d.aWw) or whichever is longest.

I think the results will be pretty good and then it will be a blazing fast algorithm since it will not touch the DOM (except maybe initial measurement of a single character for reference) and will be independent of the number of ticks generated.