Raise TypeError on invalid comparison

Currently, comparison of `Arrow` to any type except `Arrow` and `datetime.datetime` always gives `False`:
```python
>>> arrow.Arrow(2015, 1, 1) > datetime.date(2015, 1, 2)
False
>>> arrow.Arrow(2015, 1, 1) < datetime.date(2015, 1, 2)
False
```
I think this can be misleading, and suggest raising a `TypeError` instead (this is also what `datetime.datetime` does).