#shlo_ref Add F16 wrapper type
#shlo_ref Add F16 wrapper type

_Float16 is not available on the GCC until version 13, which is very recent. This change transforms the F16 into a wrapper type that will always be used regardless of compiler support. It defines conversion and arithmetic operators. If _Float16 is available, that will be used as the underlying type. If it is not, we'll use a uint16_t bits format and the FP16 library for converting between float and uint16_t.
