Check in some scripts I use for building and testing against multiple versions of Python
Add build to TestCommand's sub_commands

... and run the sub_commands in TestCommand.run. So if python setup.py test is
executed before ever running the build target, the extension modules are built.

Bug: https://bugs.launchpad.net/pycrypto/+bug/1055256
Bug: https://bugs.launchpad.net/pycrypto/+bug/976171
Use os.chmod instead of os.system("chmod ...")
Update tools/create-pythons.sh
SHA2: Don't export symbol 'add_length'

Exporting symbols can cause symbol conflicts with external libraries,
causing the dynamic linker to silently pick one of the implementations,
which can lead to subtle bugs if they're actually different functions.
asn1: make DerObject into a new-style class
pct-speedtest.py: Python 2.1-2.3 compatibility

They don't have os.urandom, so use Crypto.Random.get_random_bytes
pct-speedtest.py: Python 3 compatibility
pct-speedtest.py: Add tests for SHA224/SHA384/SHA512
pct-speedtest.py: Also test the standard hashlib modules, if possible

On my machine, hashlib is about 5x faster than PyCrypto for single-block
inputs. :(  (It's about the same for long inputs.)
pct-speedtest.py: Add some comments
pct-speedtest.py: Test HMAC modules
Fix leaks in _fastmath

Fix leaks in getRandomInteger and rsaKeyNew. If randfunc throws an exception
they both don't clean up properly.

Thanks to Andreas Stührk for helping me to debug these two leaks.
Fix LP#1061217: random.shuffle takes O(n^2) time

The previous implementation took O(n**2) time and O(n) auxiliary space.
We now use the Fisher-Yates algorithm, which takes O(n) time and O(1)
space.

Thanks to Sujay Jayakar and Andrew Cooke for pointing this out and
suggesting a solution.

Bug report: https://bugs.launchpad.net/pycrypto/+bug/1061217
Fix random.shuffle SelfTest

random.shuffle("1") is a no-op, so it doesn't raise TypeError.  This is
now true of both the stdlib random.shuffle and PyCrypto's random.shuffle
implementation.
asn1: Python 2.1 compatibility
Fix RSA object serialization
Fix RSA object serialization: Python 3 compatibility
Use autoconf to generate compiler options

Hopefully this means we'll break on fewer platforms.

Also, remove some of the extra optimization flags (e.g. -O3
-fomit-frame-pointer), which don't really do much.
OpenBSD: Automatically look for libgmp in /usr/local