phlsys_conduit: add MultiConduit and friends

Add rudimentary support for multithreading by introducing a new kind of
conduit, intended for use by multiple threads at the same time.

Initially we'll trivially restrict access to one thread at a time with a
lock, later we'll be able to juggle a limited number of extra conduits
at the same time. This will allow us to increase throughput without
going over the default Phabricator limit of 5 connections per user.

Add a new class to support impersonating users in a similar way to the
'act as user context' but in a way that is supportable by MultiConduit.

Add a trivial breathing test for the new classes.

Test Plan:
$ ./precommit.sh
phlsys_conduit: expose MultiConduit 'conduit_uri'

Conduit exposes 'conduit_uri', add it to MultiConduit as well.

Exercise this in breathing tests.

Test Plan:
$ ./precommit.sh
Arcyd: use MultiConduit

Make it possible to run multiple worker threads by adopting MultiConduit
so that conduits may be safely shared between threads.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh