Moving context state into its own class.

Wrapping the encryption and decryption operations on methods of the
class makes it a bit more obvious on how to use this part of the
library.  Also update tests to take the new interface.
Clean up EVP contexts to prevent memory leaks.
Updating TODO.md
Documentation fix
Documentation and PEP8 fixes from pylint.
Optionally write encrypted/decrypted data to stdout
A modern command line that does both encrypt and decrypt operations
Adding requirements.txt for pip's sake
renaming tests.py to test.py
Adding README.md with example usage.
Merge branch 'master' into aes-gcm

Conflicts:
	x509crypt/encoder.py
	x509crypt/symmetric.py
Adjusting the x509crypt_cmd tool to use GCM.

This just needs to know how to read and write the authentication tags
that are generated when GCM mode is used.
Adding more logging to debug what is going wrong.