Use a custom BigInteger class to remove dependency on System.Numerics

Also bug fixes in big decimal comparison, more tests, and a
work-in-progress method to round decimal formats with binary precision