Moved permissions checks into action execution.

Rather than checking at action generation time, when the future state of
the filesystem is still nebulous, actions check for permission before
attempting chown, touch, mkdir, or copy during execution. This is not
uniform with the current strategy for checking chowns, so that needs
changing as well.
Changed chwons to use new permission checking.

File and Dir chowns are now always generated when sufficiently
specified. They don't always do anything -- instead, isroot checks
and existence checks take place during execution and may cancel or
modify the running action.
Fixed tests using new permissions checks.

Tests were failing because they did not mock stat, or because
they were expecting chown actions to be omitted when is_root is False.
Repairs tests and does some mocking with statement compactification.
Removed stale file block tests.

Tests pertaining to is_root vs. not is_root are now obsolete.
Added modify action tests for permissions checks.

Checks that modify actions do nothing when they have insufficient
permissions on the target file(s). This includes both root user
status checks, and file ownership checks for chmod.