Arcyd: refactor, mv parse_config_file_list out

Move abdi_processrepolist._load_repo_configs to
abdi_repoargs.parse_config_file_list, this makes it re-usable from other
modules in a more expected place.

Test Plan:
Make sure repositories args are parsed by running these
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
fixup! WIP: add arcyd fetch command
Arcyd: fix phlurl_watcher__t flakiness

'test_A_Breathing' appears to be flaky in this test driver - depending
on random numbers to always be different.  Fix it to use numbers that
are guaranteed to be different.

Test Plan:
$ ./precommit.sh
phlurl_watcher: 'request object' for testability

Instead of taking a 'request function' for testing, update
phlurl_watcher.Watcher to take a requester object which could also be
the phlurl_request module.

This enables coverage of the 'refresh' method as well, which requires a
'get_all' method.

Test Plan:
$ ./precommit.sh
phlurl_watcher: add FileCacheWatcherWrapper

Make it easier to work with a url watcher by adding a wrapper that takes
care of loading and saving.

Test Plan:
switch breathing test to use the new wrapper
$ ./precommit.sh
Arcyd: use phlurl_watcher.FileCacheWatcherWrapper

Replace explicit calls to Watcher.load() and dump() with usage of the
new FileCacheWatcherWrapper.

Move the decision of where to store the urlwatcher_cache_path to
abdt_fs.Layout.

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

make sure snooping still works by poke and accepting in
$ ./testbed/arcyd/test_shell.sh
fixup! WIP: add arcyd fetch command