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`

The decoded string along with any unconsumed data

`val decode_exn : string ‑> string`

Raises if `decode` has any unconsumed data