Fix inexact errors on v0.4

uint64(2^64 - 1) == -1 since 2^64 is subject to overflow. Instead cast the 2 to
Uint64 before exponentiation.

int8(Uint8) preserves positive sign so can never be negative, instead
reinterpret the actual bytes.
Add tests for most families.
Merge pull request #8 from Sean1708/fixinexact

Fix inexact errors.