BigInteger: new cast to double and float

- There is room for optimization - hopefully by avoiding Math.Pow
- New helper method LeadingZeroCount that returns the number of bits
that are set to 0 at the start of an uint.