Feature/range1d datetime (WIP)

This will require a bit of discussion, especially around the Date property.

Closes https://github.com/ContinuumIO/bokeh/issues/635
I'm accustomed to a similar style in Scala. Similar because you don't use a function, but a singleton object which can have the same name as a class and act like a function. So you create a base class, `Range1d` in this case, and an object, `Range1d` as well, with `apply()` method (equivalent of Python's `__call__()`), with all the necessary polimorphic variants, that will call appropriate specific class constructors, and obviously a set of `Range1d` subclasses.