Feature/range1d datetime (WIP)

This will require a bit of discussion, especially around the Date property.

Closes https://github.com/ContinuumIO/bokeh/issues/635
Lets start from the fact that `Date` isn't implemented the way it should be, because our serializer/deserializer is ill defined (especially deserializer causes trouble here), so there are many more types allowed upon validation than it would be expected. Once again one could argue, e.g., about `float`, but I think that explicit is better than implicit and one could convert an instant to a date manually to express his intention.

I would go with 1). We should have classes that would allow us to differentiate between times, dates and datetimes. Main reasons are rather obvious, but I would add to this creation of widgets, which, in most cases, should be automatic, just looking at the type. I'm not sure about the details of the implementation. Perhaps diamond inheritance is in order, but that's not supported by CoffeeScript (at least not natively), so I think there should be a base class (e.g. `DatetimeLike`) and `Time`, `Date` and `Datetime` would derive from it.