WIP decrypt support
modify BlockCipher to generate Encryption/Decryption Contexts

This is an implementation of dstufft's API proposal.
revise api to remove enum from interfaces