Remove `Cohttp_async.body` type alias and just use `string Pipe.Reader.t` for more explicit types.
simplify and remove redundant functions and signatures in Request/Response
[lwt] add explicitly module types for Cohttp_lwt and remove duplication in Cohttp_lwt_mirage and Cohttp_lwt_unix

This also removes Body as a module alias to Cohttp_lwt_body
fix tests for bf53b8c485bd87d74c5d787556206067915b0f03
[lwt] add in Unix-specific server functions in their own module
[tests] fix tests for interface changes
[lwt] remove cohttp_lwt_make and factor out tne Net module
[lwt] lift all the Unix server functions into the module type
[lwt] more module simplification within the Lwt interfaces across Mirage and UNIX
[lwt] Fold Cohttp_lwt_net into Cohttp_lwt.

This brings back the same consistent style of defining a IO submodule
rather than manually doing IO.ic and IO.oc equivalence assignment
[async] expose Async Request/Response modules.

These are extended versions of Cohttp.Request and Cohttp.Response,
with type equivalences so that functions from either modules can
be used interchangeably.

Closes #24
ocamldoc!
[lwt] simplify the Request/Response constructions

Instead of duplicating the Request+IO, add functors for those to
Cohttp_lwt, and use them throughout the Mirage/UNIX backends.
[lwt] tighten the module interfaces by simplifying the Server functors
[lwt] include Request/Response modules inside the Client/Servers
[lwt] cleanup to use Cohttp_lwt better in UNIX
Update OASIS metadata

* Depend on `Uri` 1.3.8+ as it exposes the parameter query functions now removed from `Request`.
* Do not depend on Cstruct in core library, as only Mirage needs it.
remove the Uri parameter query functions from Request.

These are duplicated from the `Uri.get_query_param` function, so
just delete these in preference to the upstream library.

This requires Uri 1.3.8+
note rewrite in CHANGES
sync obuild (but it still doesnt work)