BUG: Avoid sentinel-infinity comparison problems (#13445)
The problem causing #13445 ultimately traces to the fact that our Infinity/NegInfinity objects were greater than/less than themselves, which violates an assumption numpy makes when sorting.  This was separately reported as https://github.com/numpy/numpy/issues/7934, but we can fix and test downstream as well.
- [X] closes #13445
- [X] tests added / passed
- [X] passes `git diff upstream/master | flake8 --diff`
- [X] whatsnew entry

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/14006?src=pr) is 85.28% (diff: 100%)

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

``` diff
@@             master     #14006   diff @@
==========================================
  Files           139        139          
  Lines         50229      50229          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          42837      42838     +1   
+ Misses         7392       7391     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [8b50d8c...7d79370](https://codecov.io/gh/pydata/pandas/compare/8b50d8c854196e3025c9a881cafeedc5f509aaef...7d79370153954d9159e4258909c9e8685568ee1d?src=pr)
 thanks @dsm054 

always nice to see PR's from you! keep em coming!
