BUG: DataFrame.diff(axis=0) with DatetimeTZ data
- [x] closes #18578
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Unfortunately, `DataFrame.diff` doesn't work correctly with axis=1; it returns values like so after this patch:

```
In [2]:         df = DataFrame({0: date_range('2010', freq='D', periods=2, tz='utc'),
   ...:                         1: date_range('2010', freq='D', periods=2, tz='utc')})
   ...:

In [3]: df.diff(axis=1)
Out[3]:
       0      1
0    NaT    NaT
1    NaT    NaT
```

I believe this is because `diff` is implemented by iterating over the 2 DatetimeTZBlocks (via `BlockManager.apply`, but `diff` needs data from both blocks at once. (Is it possible to consolidate 2 DatetimeTZBlocks?) I made this raise a `NotImplimentedError` for now. 