Fix FastComplex encoding when imaginary bits are negative

Before this patch

```
scala> FastComplex.imag(FastComplex.multiply(FastComplex(0,1), FastComplex(0,1)))
res8: Float = NaN
```

Unfortunately, after this patch, two tests fail. Maybe a bug in `FastComplex.pow`? Imag should be close to `0.0f`, not `NaN`.

```
scala>     val i = FloatComplex.i
scala>     val one = FloatComplex.one
scala>     val e = FloatComplex(scala.math.E, 0.0)
scala>     val pi = FloatComplex(scala.math.Pi, 0.0)
scala>     e.pow(i * pi)
res10: spire.math.FloatComplex = (-1.0+NaNi)
```