This patch has the implementation and tests for converting between fixed point and floating point numbers.
The conversion process is simply dividing the fixed point value, as an integer, by 2^(# of fractional bits) as a float.
```
float f = (float)2.5k;
assert(f > 2.4999 && f < 2.5001); // High precision since the fractional value can be evenly
// represented.
```
This is a parent of https://reviews.llvm.org/D46925