Perform basic floating-point range analysis for the exponent.
I was looking into handling multiply by a constant to perform denorm
scaling to match the current ldexp handling in computeKnownFPClass,
and went a bit overboard on generalizing the helper function for it.
I also find these fltSemantics getters incredibly annoying and think
the struct definition should just be public (along with all the
definitions for it).
(style) assertion messages