Add a "Form" scheme that apes JavaScript's encodeUriComponent.

This is mainly for HTTP POST forms (e.g. in Cohttp), and is exposed
via the `form` scheme. We probably ought to break the string schema
parsing interface and expose something more structured instead.

See mirage/ocaml-cohttp#126