Clean up pem keys

A change of line or any other character outside the public key makes
changes the keyid and breaks the behaviour of TUF. Remove everything
before '-----BEGIN PUBLIC KEY-----' and after
'-----END PUBLIC KEY-----'.
Replace re.sub() with string.index()

re.sub() with the 'flags' keyword argument caused type error in Python 2.6.
Converted PEM validation to use index() to address issue above.
Raise specific exception depending on missing header / footer.
Check footer follows header.
Add test case for keys.formats_rsakey_from_pem()

Add test_formats_rsakey_from_pem() test case and test conditions for improperly formatted PEM.
Add test condition to verify trailing whitespace is removed and matches the expected PEM format generated
internally.  Public PEMs generated externally (with the expected trailing newline) was not previously considered.
Merge branch 'meskio-clean_keys' into develop
Merge pull request #239 from vladimir-v-diaz/develop

Review and update Pull Request #238.