A buffered reader and writer streaming encoded or decoded text from source to destination.
For correctly encoding or decoding a stream of bytes, the buffer needs to be aligned to a
specific number of bytes. For example using Base64 the buffer has to be a multiple
of 3 bytes for encoding and a multiple of 4 bytes for decoding.