Arcyd: BREAK, use multiprocessing to process repos

To allow expensive and independent IO operations to be completed
concurrently, process repositories in worker processes.

The worker processes are forked from the main process with
multiprocessing.Process(), this means that they inherit a complete copy
of the state of the main process.

Note that this will only work on unix-like operating systems, if we were
compatible with Windows before then we are not now.

Test Plan:

General coverage
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh

Look for concurrency-related issues by spawning lots of repositories to
go through the 'happy path' of (create review)->(land review) at the
same time.
$ ./proto/arcyd-tester --repo-count 800

Play with the new version in the test shel
$ ./testbed/arcyd/test_shell.sh