Decode request in handler

This duplicates some code but eliminates the incorrect reuse of previous
request information.
Encode in hash functions

Make the hash functions base64 encode and trim padding. This needs to be
done everytime we hash, and it won't make sense for some hash functions,
so it makes sense to move the responsibility into hash and probe. The
next step is to find a better home for the actual encode() function.
Convert URL to []byte only once

Since we use the []byte version several times, it makes sense to only
convert it once.