Added support for connecting to a Unix domain socket.
Add an explicit `ctx` content to track every conduit's runtime state.
Allow the source interface for a conduit to be set.

This refactoring is WIP.
Support a `password` callback for the SSL server.

Adapted patch from @dinosaure in #4
Add a `conn` value to the callback to query more information about the current connection

This is preferable to the solution in #2 since it is extensible to other types of
connections in the future, such as shared memory (which will not fit into the sockaddr
model).
improve indent
Move the variant types out to Conduit, for eventual sharing with Async
Make the context argument optional to ease migration
more unification of the various types

The Async server is still not using Conduit.Server since it's a
more complex type to override, so this will change in the future.
add ipaddr
Merge pull request #6 from avsm/refactor-interface

Work in progress on interface refactoring