add client

wraps connection, handling reconnects and implicitly opening new connections
for requests that would block others (i.e. stream, run, link)