This allows for on-the-fly encoding/decoding, and also allows for on-the-fly transcoding between types without needing intermediate string allocations (see added test cases for examples).
Other changes here:
includes the size calculations from #51 (though this conflicts with the changes in that PR because I needed to move them).
starts using the size calculations internally
makes is_base32z and is_base64 slightly stricter (we no longer consider a trailing "garbage" char to be acceptable).
This allows for on-the-fly encoding/decoding, and also allows for on-the-fly transcoding between types without needing intermediate string allocations (see added test cases for examples).
Other changes here: