Add base64 URL safe encoding function.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Use base64 URL safe encoding for revoked file handles

We create a file in recovery directory for a revoked file handle.  The
name of such created file is derived from the file handle.  If the file
handle contains only printable characters, we use the file handle as
file name. If it contains any non-printable characters, we use base16
encoding of the file handle as the file name. This conditional
conversion can result into two different file handles being stored as
the same file name. This is unlikely but possible! Also the maximum
length of the file handle can be 128 bytes based on NFSv4 RFC, but none
of the Ganesha FSAL's use more than 64 byte file handles at this time. A
128 byte file handle's base16 encoding will exceed NAME_MAX which is 255.

So this patch is really a future proof for Ganesha FSALs that may have
close to 128 byte length file handles as well as fixing that unlikely
file name collision!

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>