Feature/range1d datetime

This will require a bit of discussion, especially around the Date property.

Closes https://github.com/ContinuumIO/bokeh/issues/635
To follow up, `Property.matches()` is a good example where we don't know what exceptions can be raised (well, if we wanted really hard we could figure this out, because numpy is the main problem here), so we catch everything but re-raise system exceptions:
```python
def matches(self, new, old):
    try:
        return new == old
    except (KeyboardInterrupt, SystemExit):
        raise
    except Exception as e:
        logger.debug("could not compare %s and %s for property %s (Reason: %s)", new, old, self.name, e)
    return False
``` 
But it seems this code is redundant, because one could take advantage of exceptions' class structure:
```python
In [1]: try:
   ...:     raise SystemExit
   ...: except:
   ...:     print 'exit'
   ...:     
exit

In [2]: try:
   ...:     raise SystemExit
   ...: except Exception:
   ...:     print 'exit'
   ...:     
An exception has occurred, use %tb to see the full traceback.

SystemExit

To exit: use 'exit', 'quit', or Ctrl-D.
``` 
This is because:
```python
In [3]: SystemExit.mro()
Out[3]: [SystemExit, BaseException, object]
```