totp: support changing the period too

totp: support other algorithms too

add support for the `digits' query argument allow to print also 7 and 8 digits long codes in addition to the current defaut of 6. Requested by heph

for completeness, percent-decode the secret if needed it shouldn't EVER be needed, but since we handle URIs we should tick this box too.

rework uri2secret to handle (in the future) other params too

netbsd seems to have sys/endian.h too

totp: extract the secret from otpauth:// URIs More often than not, services provide the URI for TOTP and not the raw secret. While it's easy to manually extract the secret from the querystring, teach totp how to do that on behalf of the user. Manpage bits will follow. Discussed with heph.

simplify b32decode; no functional change no need to take an explicit length parameter when we can just advance the string until a NUL byte. base32 doesn't allow NUL bytes.

add a companion TOTP utility