[WIP] NaN inequalities should raise TypeError

See PR #7776 for discussion.

 - [x] NumberSymbol needs special case.
 - [x] `oo` needs special case.
 - [x] `Float` needs special case.
 - [x] 'Rational' works as is (as existing special case).
 - [x] lots of asymmetric results: IMHO we really do want *lots* of tests, not just spot tests, sorry @smichr!
 - [x] All of this is for the binary ops, `Lt` is not tackled, that is pr #7783.
 - [x] clean up tests, test comments
 - [ ] couple FIXME's (probably relating more to pr #7783.)
 - [ ] rebase, squash
Probably `and other is not S.NaN`?