Rename phlgitx_ignoreident* -> ..ignoreattributes

Broaden the scope of this module by renaming it, fixup all references by
using rope to do the refactoring.

Test Plan:
$ ./precommit.sh
Document, change description of phlgi_..attributes

Also update relevant bits of abdcmd_fsck, to reflect the broader scope
of the module.
Arcyd: Ignore eol attributes to avoid trouble

In a similar vain to ignoring 'ident' settings, ignore 'eol' settings in
.gitattributes files so that we don't run into edge-cases where a 'bad'
file has been checked in, causing git to want to register changes to the
file in the working copy.

Update phlgitx_ignoreattributes to apply a global setting in
.git/info/attributes of local repos.

Add a test case to verify thtat overriding the eol attribute allows us
to move freely between branches in the event of a mismatch.

Test Plan:
$ ./precommit.sh

Reproduce problem condition, apply fix, use arcyd fsck to fix problem
$ ./testbed/arcyd/test_shell.sh
    .. reproduce the problem ..
    $ printf "\r\n" > badeol.txt
    $ hexdump -C badeol.txt
    $ git add badeol.txt && git commit -m 'add badeol'
    $ echo "* eol=lf" > .gitattributes
    $ git add . && git commit -m 'set eol=lf'
    $ git checkout -b r/master/fixeol
    $ printf "\n" > badeol.txt
    $ git add . && git commit -m 'fix eol'
    $ git push origin master r/master/fixeol
    .. wait for review to be created ..
    $ ./accept.sh
    $ touch blah
    $ git add . && git commit -m 'add blah'
    $ git push origin r/master/fixeol
    .. arcyd is now stuck, thinking it's made local changes ..
    $ cd ../arcyd
    .. change phlgitx_ignoreattributes to ignore eol ..
    $ arcyd stop
    $ arcyd start
    .. verify arcyd is still broken ..
    $ arcyd stop
    $ arcyd fsck
    $ arcyd fsck --fix
    $ arcyd fsck
    $ arcyd start
    .. arcyd is now happy ..
Start using std logging

Move towards more powerful and portable logging by initialising and
starting to use the standard logging module in 'arcyd start'.

Log INFO or higher priority messages to 'var/log/info'.

Test Plan:
$ ./testbed/arcyd/test_shell.sh
    .. verify that outputs to stderr file in expected format ..
$ ./precommit.sh
Fix unreliable_git_loop_test.sh

Update bad_git_push_arcyd.py to conform to the new phlsys_git.Repo
interface.

Don't use the supplied arcyd binary when setting up repositories - we
want that bit to succeed.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/unreliable_git_loop_test.sh
    .. run a couple of times ..
    .. make sure it exits cleanly after a few revisions ..
abdt_logging: log using module-level logger

Use the idiomatic module-level logger

Log on_retry_exception's that will be retried again as warnings and
when we have run out of retries then log the last try as an error.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/unreliable_git_loop_test.sh
    .. wait long enough for an attempt to fail ..
    .. stop loop and look at printed /var/log/info ..
Arcyd: show error level name in logging

Make it possible to filter the stream of log messages by severity by
printing the name of the error level in each message.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/unreliable_git_loop_test.sh
    .. wait long enough for a request to fail ..
    .. exit and observe the different log levels ..
abdt_logging: log more detail on_retry_exception

Show more context and the traceback when logging a call to
on_retry_exception().

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/unreliable_git_loop_test.sh
    .. wait long enough for an error to occur ..
    .. stop loop and examine var/log/info for details ..