WIP: NaTD
There are a bunch of places where we do something like:

```
    def method(self, other):
        [...]
        if isinstance(other, (np.timedelta64, timedelta, Tick)):
            other = Timedelta(other)
       [...]
```

But in the case where we start with `np.timedelta64('NaT')`, we end up with `NaT` which is datetime-like instead of timedelta-like.  In some of the places where this occurs, we check for this case and special-case it.  In others we miss it completely.

I am _not_ proposing to change the behavior of `Timedelta` or make `NaTD` public.  The idea is that since we need the arithmetic/comparison methods anyway, we might as well put them into one place and handle them systematically.

Tests are a mess at the moment.