Simplify, and use NIO more correctly
Add encrypt(ByteBuffer, ByteBuffer) and decrypt(ByteBuffer, ByteBuffer).
Add some unit tests for ByteBuffer to ByteBuffer crypto
Document API better and check postconditions
Mark stream ciphers as such
Use update() not doFinal(): A CryptByteBuffer is a single stream, be consistent. (IMPORTANT)

This was true for PCFB but *NOT* for stuff using JCA (AES, ChaCha). I.e. repeatedly encrypting the same data would give the same result for AES, while it would be treated as later in a stream and thus give different output for PCFB.
Check number of bytes encrypted