Simplify _fastmath (remove import)

The randfunc parameter of getRandomInteger() can
be a callable object or None.

If it is None, C code will import the Random module
and create a new RNG object.

Apart from breaking pypy, the C code is ugly and unnecessary:
it is much easier to ensure that getRandomInteger()
is always called with a valid object from the Python side.
Make AESNI.c more C89-compliant.
Stop poking inside PyLong's

This patch modifies the 2 routines to convert
libgmp integers into (and from) PyLongs, so
that internals or PyLongs are not accessed
directly anymore.

With this last patch, PyCrypto should run under PyPy.
Add explicit pointer castings to remove gcc warnings
Fix for 64-bit platforms and negative numbers

This patch fixes 2 problems:
* The code only worked on 32-bit platforms (not on 64-bit)
* The code did not handle conversion of negative numbers
  correctly.
Travis CI config file.
Fix BytesWarning when running with "python3 -bb"
Fix tests when running under "python -OO" (PYTHONOPTIMIZE set to 1 or 2)
Merge remote-tracking branch 'origin/pr/59' into test