Arcyd: refactor, mv repo config parsing to 'start'

Make it possible to do all disk access to repository config files for
'arcyd start' before doing abdi_processrepos.process().

This makes it possible to get a lock on the repository config files
at the top-level of the program and release it before descending into
the arcyd daemon details.

Test Plan:
$ ./precommit.sh
Exclusive fs during arcyd start and stop

Make it possible to start and stop arcyd arbitrarily without the
possibility of running during an 'arcyd add-*' operation or starting
while we're starting, or stopping while we're starting etc.

Test Plan:
$ ./precommit.sh
Exclusive fs during 'arcyd rm-repo'

Make it possible to run 'arcyd rm-repo' without needing to ensure that
'arcyd start/stop/add-*' is being run at the same time; to avoid leaving
the file system in an inconsistant state.

Test Plan:
$ ./precommit.sh
Exclusive fs during 'arcyd fsck'

Run consistency checks and fixes without needing to ensure that
'arcyd start/stop/add-*' are not running at the same time.

Test Plan:
$ ./precommit.sh
Exclusive fs during 'arcyd fetch'

Make it possible to 'arcyd fetch' without needing to manually ensure
that no other arcyd commands are being run at the same time.

Abort if arcyd is currently running to avoid introducing cache
inconsistencies.

Test Plan:
$ ./precommit.sh
Exclusive fs during 'arcyd list-repos'

Make it possible to 'arcyd list-repos' without needing to manually ensure
that no other arcyd commands are being run at the same time.

Test Plan:
$ ./precommit.sh
Merge branch 'fix/exclusive_cli3' into fix/exclusive_cli2