(PUP-1988) Ensure=>absent logs property changes

This implementation hooks into ResourceHarness to get the current instance and
allow syncing of properties when ensure changes. This code performs much of the
same steps as  ResourceHarness.perform_changes does, but only during destroy()
(ensure => absent). This allows the messages not only to be logged to the
console about changes to properties, but also to end up in reports.

This code will be removed by a better solution.
(PUP-1988) ensure=>absent to purge=>listed_permissions

In providing good output for `ensure=>absent`, we realized that using ensurable
was the incorrect way of providing a way to remove permissions. In doing that
we've decided to use `purge=>listed_permissions` as a better way of making the
manifest easier to understand just by looking at it and to make the code base
more maintainable.
Merge pull request #8 from ferventcoder/ticket/master/PUP-1988_ensure_absent

(PUP-1988) Remove permissions should log