[KnownFPClass] Fix KnownFPClass::frem subnormal handling and improve deductions. (#219303)
Fixes input/output subnormal handling for `KnownFPClass::frem` as
discovered here https://github.com/llvm/llvm-project/pull/219091
Also improves the deductions made by `KnownFPClass::frem`. Such as
ruling out sNaN if neither argument is sNaN.
`KnownFPClass::frem_self` deductions were also improved.