Arcyd: refactor, move error identifiers to file

Provide a central file for Arcyd 'error identifiers' so it's easier to
determine what identifiers to expect in external error loggers.

Move all existing error identifiers to the new file.

Test Plan:
$ ./precommit.sh
Arcyd: support external logger

Make it easier for external systems to escalate specific failures by
providing a new --external-error-logger argument for supplying the path
to a binary which will accept 'identifier' and 'detail' parameters.

The 'identifier' parameter will be stable for failure during particular
events, e.g. 'conduit-refresh', 'git-snoop' etc.

The 'detail' parameter should contain enough context to start debugging
the problem.

Add a new script to log errors and use it from testbed/arcyd/_loop.sh so
that testbed/arcyd/unreliable_git_loop_test.sh can be used to exercise
the new logging path.

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

verify error log output from
testbed/arcyd/unreliable_git_loop_test.sh