base64: provide a fast path for encoding well sized buffers
Avoid conditionals in the base64 encoding loop,
which was seen to give a 60% throughput improvement
with the base64 utility from coreutils:
$ truncate -s100MiB file.in
$ time base64-old -w0 < file.in >/dev/null
real 0m0.302s
$ time base64-new -w0 < file.in >/dev/null
real 0m0.182s
* lib/base64.c (base64_encode_fast): A new function to be called
when we don't want to NUL terminate, and we have enough space
in the output to encode the given input.
(base64_encode): Call the _fast() version when appropriate.
Also remove a redundant mask with 0x3F on the first encoded byte.