RSA keys

These are implemented such that they don't depend on the backend. This
means we don't have to worry about passing an RSA key created with one
backend to a different one so much at the expense of having to create a
backend specific context on demand.

This is slightly non-trivial in (at least) OpenSSL as there are 3
additional derived parameters kept in its RSA struct. They aren't
difficult to generate but it requires adding 30-40 lines of BN_* stuff
to the backend so I'm leaving that out for now. We'll need to implement
that before we can actually do any useful operations with the keys.

This also adds a loader for some of the PKCS #1 test vectors. It only
extracts the 10 key pairs from pss_vect.txt currently be should be
extenable to include the example signatures and other files later.
Sanity check keys.

Taken from RFC 3447.
Check p*q=n in the tests
RSA key docs
Use a version check when counting bit_length
Test alias properties
More sanity checks
Use os.path.join to make paths
Check that public_exponent is odd
Add warning about untrusted private keys
.
Make tests more explicit.
Merge pull request #559 from public/rsa-keys

RSA keys