Base32_encode: *actually* allow inputs of odd sizes
When we "fixed" #18280 (moved) in 4e4a7d2b0c199227252a742541461ec4cc35d358 in 0291 it appears that we introduced a bug: The base32_encode function can read off the end of the input buffer, if the input buffer size modulo 5 is not equal to 0 or 3.
This is not completely horrible, for two reasons:
- The extra bits that are read are never actually used: so this is only a crash when asan is enabled, in the worst case.
- The input sizes passed to base32_encode are only ever multiples of 5. They are all either DIGEST_LEN (20), REND_SERVICE_ID_LEN (10), sizeof(rand_bytes) in addressmap.c (10), or an input in crypto.c that is forced to a multiple of 5. So this bug can't actually trigger.
Nonetheless, let's fix it!