Web/file safe encoding, replacing '+' and '/' with '-' and '_' respectively. There is
no padding when encoding.
See Table 2 in RFC4648 (http://www.ietf.org/rfc/rfc4648.txt)
for the full character set
val encode : string ‑> string
val decode : string ‑> string * [ `Unconsumed_data of string ] option