(PUP-1737) Do not allow inherited permissions

The manifest should not specify an ace with inherited => true. If this is found
it should return an error letting the user know they need to remove or
change the resource entry.
(maint) naming and formatting
(PUP-1737) Methods for syncing DACL

This adds the methods for preparing to sync between the current DACL and
the should DACL.
(maint) formatting
(PUP-851) Manage propagation (PUP-846) Manage Inheritance

This adds the inheritance and propagation flags for each ace based on how they
are set up in the manifest. Also if someone sets `child_types => 'none'` and
changes `affects` to anything but 'self_only', a warning will be passed back
with a note on how to get rid of it. In cases where the user does this, the
provider will react appropriately and add the warning instead of erroring.
(maint) formatting surrounding bit checks
(PUP-1737) Get Account Mask

This converts what is listed in the ace type into the ACE mask.
(PUP-1737) ensure convert_to_dacl

Added a missing spec
(maint) formatting, spacing and comments
(maint) note on sync display with unmanaged

When syncing with unmanaged resources, it will look incorrect in what it is
setting permissions to. Adding this as a reminder to visit this.
(PUP-1737) Ensure including monkey patches
(PUP-1737) Manage Permissions

This provides the functionality to sync permissions with against the current permissions.

This ensures that when you set values the validation and checks are done with
aces. This also converts ace.rights, ace.type, ace.child_types, and ace.affects
to use symbols under the covers.
(PUP-1737) Ensure rights are in order and duplicates removed

This provides the functionality to ensure order of rights.
(PUP-1737) Ensure rights values are compatible

This provides validation functionality to ensure that warnings are logged when
a manifest contains incorrect rights assignments. It will also set "full" and
"modify" to be the only element in the rights if the rights includes them.
(PUP-1893) permissions are not formatted correctly

This provides a fix to the formatting of the permissions when formatted in
readable format.
(PUP-1737) Init.pp
(maint) cleaning up specs and comments
(PUP-848) use @property_flush.has_key?

When checking against the boolean value, the hope is that it is set to a symbol
so that the evaluation is against whether the property exists instead of
"true/false", but to be sure, one should check to see if the key exists instead
of relying on a faulty truthy value.
(PUP-1737) sync_check with identity not necessary

Since we are already calculating the sid, we should use it instead.
(PUP-1737) Ace identity to validate values on set