The FP Range follows the same pattern as integer range, with two major differences.
- It's inclusive
- NaNs are tracked separately from the range.
This patch implements; construction, printing, fadd, fsub, fmul, fdiv, minimum, maximum, cast, makeAllowedRegion, makeSatisfyingRegion.
Rounding of operations is conservative and returns a potentially larger region.
Floating point vectors are still tracked as integer ranges.
Includes exhaustive testing for all supported operations.