BUG: Catch overflow in both directions for checked add
Port of #14324 after project name change.

@jreback : Doesn't seem like Appveyor is picking up this PR.
 ## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14453?src=pr) is 85.25% (diff: 68.75%)

> Merging [#14453](https://codecov.io/gh/pandas-dev/pandas/pull/14453?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will decrease coverage by **<.01%**

``` diff
@@             master     #14453   diff @@
==========================================
  Files           140        140          
  Lines         50640      50654    +14   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43175      43184     +9   
- Misses         7465       7470     +5   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [65362aa...2dc49e4](https://codecov.io/gh/pandas-dev/pandas/compare/65362aa4f06f01efdc20ca487c1c3c1f090613ee...2dc49e46f0251213bb724b0968af7d51792134fc?src=pr)
 lgtm. can you add a whatsnew note. put in a new API Changes section in 0.19.1
 Please no api change section for 0.19.1. We put it in the bug section for 0.19.0, so then can put it here there as well I think (we maybe should have put it in the api changes section for 0.19.0 ..)
 bug fix section is fine
 @gfyoung Thanks!
 @jreback , @jorisvandenbossche : So while it's good that we're catching underflow, when I try to integrate this check with tdi + tdi OR tdi + td, we run into issues:

``` python
>>> import pandas as pd
>>>
>>> tdi = pd.TimedeltaIndex([pd.NaT])
>>> td = pd.Timedelta('1 days')
>>>
>>> tdi - td   # Should return TimedeltaIndex([pd.NaT])
...
OverflowError: Overflow in int64 addition
```

This is because we are doing the checked add with the `asi8` values, meaning that `NaT` becomes `np.iinfo(np.int64).min`, so the subtraction underflows as expected but not as we want.  Not sure what the best way is to NOT do checked add for those elements whose value is `NaN`.  Thoughts?
 Additionally mask for that in the checking code?
 Hmmm...I suppose, though that will impact performance again :cry: .  I can give it a shot anyways and see what happens.
