don't use globs for tests

This makes the tests compile again and is better style.
(It did not compile because of "conflicting types" due to the globbed
import. Unfortunately the compilers error messages are not very helpful.
Using explicit imports fixes this.)

Fixes #7.
mpz: implement `powm`
mpz: implement `sqrt` and `root`
mpz: implement `gcdext`
mpz: implement `nextprime`
mpz: implement `pow`
mpz: implement `Hash`

For this, we need to make assumptions about the size of a GMP limb.
Currently the size is assumed to be that of a `uint`. This assumption is
verified by a test.

However, GMP provides `__gmp_bits_per_limb` that could be used to
reliably determine the correct type at compile time.  Alternatively the
corresponding type could be imported via FFI (if Rust supported it).
Implement ToPrimitive for Mpz
Expose millerrabin primality testing
Fix a bad test