Fixed patching of stderr for default log output

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
unwritable target file copy test

Adds a test for copying a file to an unwritable destination
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.