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