(PUP-844) Autorequire groups

This allows permissions, owner, and group to also be autorequired against
groups.
(doc) Moved most examples to readme

Cleaning up the acl type doc as most of the information is in the README.md
file. Provided a link to the file as well.
(PUP-845) exists?, create, destroy (partial)

This provides better handling on exists? and create since the type only manages
the permissions associated with a target and not the creation or removing of
the target itself.

For destroy this returns an error message if permissions are not also
specified. In most cases they would be, except when run from puppet resource.
(maint) move ensurable
(PUP-844) inherit_parent_permissions on feature exists

This ensures that inherit_parement_permissions can only be set when the
provider has implemented can_inherit_parent_permissions.
(PE-3180) win32-security SID buffer size too small

Ensure we stay in step with the fixes for earlier versions of win32-security.

This ensures we do not override the work done with
https://github.com/puppetlabs/puppet-win32-ruby/pull/26
(PUP-844) fix specs on inherit_parent_permissions feature
(PUP-1737) ensure should_purge is munged
(PUP-1737) Improve absent check - property_flush
(PUP-1737) Show should permissions correctly

When purge => false, unmanaged perms should show in what we are setting the
permissions to. That was priorly only showing what was explicitly managed in
the manifest and that could lead to confusion or alarm until inspection of the
resource.
(doc) remove done todo