fix Float16 equality and printing
keeps the current show() format, which makes it clear you have a Float16, but
prints in decimal, similar to how we handle unsigned integers.
the printing is done by calling grisu with SHORTEST_SINGLE, which may not
be optimal but is probably correct (won't lose data).