Add an experimental Conduit_resolver

This is a platform-independent interface that determines a connection
strategy that can be passed down to OS-specific Conduit instances.
Resolver: record hostname with the `TLS` structure
Improves to the portable resolver API

Do not force service lookup to be a hashtable. Expose a function
instead
Add a Lwt_unix_resolver module that includes a system resolver

It uses getaddrinfo and getservbyname to be as 'unix-like' as possible
formatting
tidy up Conduit_resolver types
rename add_domain_rewrite -> add_rewrite
Move endp types into Conduit and start hooking in the resolver
Functorize the Conduit_resolver into a Lwt_conduit_resolver to permit an Async version too
Explicitly refer to the OpenSSL bindings in the polymorphic variant
Change a few cases of Lwt_ssl to OpenSSL variants
More Lwt_ssl -> OpenSSL in variant names
Add a static Unix resolver as well as the system one
Merge branch 'master' of github.com:mirage/ocaml-conduit
Add WIP Mirage_conduit module
Add a static services lookup from `uri.services` for Unix.
Add a `Mirage_resolver` module

There is a static version that uses built-in information, and a
functor that spawns a resolver against a network stack
Hook Mirage into the build
Allow the Mirage_conduit resolver to be specified explicitly
Add conduit mirage connector