Improved Cipher input/output streams.
Rewrites of JCE javax.crypto.CipherInputStream and CipherOutputStream that don't silently eat invalid ciphertext exceptions and don't call doFinal() twice (i.e. can be used and used safely with AEAD ciphers).
Improvement to LW API CipherInputStream and CipherOutputStream to support AEADBlockCiphers and simplify internal logic.
Full testing of JCE and LW Cipher streams with common ciphers, including tampering of AEAD ciphertexts.

Oracle bug refs for broken Cipher stream behaviour:
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8016171 (CipherInputStream masks ciphertext tampering with AEAD ciphers in decrypt mode)
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8016249 (CipherInputStream in decrypt mode fails on close with AEAD ciphers)
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8012900 (CICO ignores AAD in GCM mode)