Fix to scratch container for uid/gid

Replaces mock gid and uid with  mocking that makes lookups always return
the real values. This means that comparisons against the filesystem
properties (os.stat) within the scratch container always verify
correctly. Another layer of mocking is required to test failure, or such
testing should be done outside of a scratch container.
Improvements to testing coverage.

Add default verification code check to ensure that when not overloaded, the
verification code is always 'OK'. Backup test coverage, start on file/dir copy
and create test coverage.
Better output mocking
Need to patch the default 'run_log' location in addition to sys.stderr
Without this patch, sys.stderr is bound in src.settings.default_globals inside
of the defaults dict before the mocking is put in place.
Added E2E symlink testing, minor symlink bugfix

Adds first E2E tests for symlinks, specifically adds symlink copy testing. This
test identified an issue with file copy verification, which can fail by reading
the permissions of a link target, rather than the link itself. To correctly
handle this case, every file copied should be explicitly tested for link status.
Complete testing of modify and file/dir actions

Final functions focusing on testing of the configuration code are now complete,
giving 100% code coverage.
Merge branch 'testing/2.1.0-completion' into dev