block cipher decryption support

This is a squash of previous commits plus new ones. Ran into a pile of
conflicts during the rebase and decided this was an easier way to retain
a sane commit history
update docs to reflect new encryptor API
modified approach to encryption/decryption contexts
further simplify context objects
address review comments

* inline some methods
* refactor enc/dec classes
* modify docs
Merge branch 'master' into block-cipher-decrypt
remove enum requirement now that we're not using enum
rename variables in encrypt/decrypt example
remove unneeded import...whoops
Create CipherContext interface & document it

* Rename BlockCipherEncryption/DecryptionContexts to just
  CipherEncryption/DecryptionContext
* Moved register to interfaces.py from modes.py since it is generic and
  can be used to decorate the _CipherEncryption/DecryptionContexts
fix typo and show result of decryption in docs
exclude abstractmethod decorator from coverage
fix doc test failure
more docs
verify that encryptor/decryptor returns CipherContext compliant interface
Merge pull request #112 from reaperhulk/block-cipher-decrypt

Block Cipher Decryption