mp_integer: implement faster construction from C++ integral types.

And fix a test case to actually test what it claims to test (dynamic vs dynamic copy assignment in the union).