Improved hash space and expressivity

Previously all random data came from Python’s built-in UUID4 encoded in
hexadecimal. Hexadecimal encodes 16 values in one byte, that means there
is a 4:8 ratio of meaningful bits to each byte of hexadecimal encoding.
Instead we use base64 which encodes at a 6:8 ratio. This has the added
benefit of not looking amateurish.