(#17488) Capture access violations for selinux context of file resources
...and deal with them gracefully without aborting the run.
A simple reproducer of the problem (abort), to be run unprivileged:
puppet apply --execute "file { '/root/chuj': ensure => absent; }"
(#17488) Don't abort while checking managedhome on nonexistent user provider
The user resource itself should fail itself and this prevents falling back to
that. Simple test case (unprivileged):
before$ puppet apply --execute 'user { "kokot": managehome => true }'
Parameter managehome failed: Validate method failed for class managehome: undefined method `manages_homedir?' for NilClass:Class
after$ puppet apply --execute 'user { "kokot": managehome => true }'
err: Could not find a suitable provider for user
notice: Finished catalog run in 0.10 seconds