moved encrypting and decrypting Ciphers to class variables
made encrypting and decrypting Ciphers private variables
moved initialization of encrypting and decrypting ciphers into the AESKeyVersion constructor
added methods to allow you to encrypt and decrypt a stream, added tests to test using these methods with all modes, key version lengths, and different inputs
added encryption and decryption functionality via SymmetricEncryption class as suggested by Cory. Added tests for this in SymmetricEncryptionTest.
added custom exceptions for building key versions, encryption, decryption
added constructor taking just one parameter, (Throwable cause) to allow for exception chaining
changed to use custom K2 exceptions, deprecated old encryption and decryption methods (now in SymmetricEncryption instead)
updated tests to use custom exceptions
changed according to Cory's comments (changed comments, removed deprecated methods)
Merge pull request #13 from jmaheswaran/master

Added encrypting and decrypting streams functionality and tests, refactored encrypting and decrypting Ciphers. Added SymmetricEncryption class. Added custom exceptions (BuilderException, EncryptionException, DecryptionException) and updated AESKeyVersion and tests to use them.
Remove i18n exception messages.

- Consensus: it does not make sense to i18n at this level.
- Changed to messages to enums on exceptions.
- Makes it easy to i18n at a higher-level.
Merge branch 'master' of https://github.com/google/K2