Rewrite `integer-gmp` to use only non-allocating GMP functions
After some promising results with a proof-of-concept implementation, I'm optimistic we can rewrite
integer-gmp to use only non-allocating GMP lib functions without suffering from serious regressions.
If successful, this would
- allow to avoid the custom GMP allocator hack, and thus
- avoid issues when linking against other C libraries using GMP,
- simplify code, as we would perform all heap allocations in Haskell code (and never inside Cmm/C code as its done now),
- and finally maybe even remove a few more superfluous temporary heap allocations.
see also wiki:Design/IntegerGmp2