nan box single precision floats when storing in registers
nan box single precision floats when storing in registers

This commit goes someway towards sunflower conforming to section 9.2
of the riscv spec (v2.2). Hopefully, with this commit, anytime a single
precision floating point value is stored in a register the upper
32 bits will be set to 1 making it a valid `quiet nan` double precision
value.

This commit does *not* check floating point values are correctly nan
boxed when reading registers even though this is mandated by the spec.
Maybe a future pull request can implement this.

Refs #https://github.com/phillipstanleymarbell/sunflower-simulator/issues/54

phillipstanleymarbell/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,gemusehaken/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,gemusehaken/sunflower-simulator,gemusehaken/sunflower-simulator,gemusehaken/sunflower-simulator,gemusehaken/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,phillipstanleymarbell/sunflower-simulator,gemusehaken/sunflower-simulator,gemusehaken/sunflower-simulator,gemusehaken/sunflower-simulator,phillipstanleymarbell/sunflower-simulator