(PUP-1801)(PUP-847) Nil is a fine way to manage unspecified

For groups and owners, if the value is nil, then don't try to manage it. Nil
cannot be specified in a manifest, therefore cannot be set from puppet. So Nil
is a fine way to manage unspecified parameters and properties.
(PUP-1737) ensure bit flag masking order of operations
(maint) use defined constants for Allow/Deny
(doc) add yardocs for ACE

This should add some documentation surrounding aces especially with the
possibly confusing same? versus ==.
(maint) Remove creation of methods on provider

Prior to this during autorequires, if a method didn't exist on the provider we
would create it with a block to just return the value passed in. This saved a
few repeated checks. This could be confusing during inspection so we favored a
more explicit approach to see if the method exists and then only call it when
it does.

Paired with Josh Cooper <josh@puppetlabs.com>
(PUP-844) autorequire for files cleanup

The case will be either uppercase or lowercase, so we don't need a third check
in there to check the default. Just lowercase and check and then upcase and
check.