CHEF-4553: Guard interpreter and powershell boolean awareness

The interface here is the guard_interpreter attribute -- specifying the symbol for the resource causes the string to be evaluated as a script.

To pass attributes to the resource, the guard's hash argument (opts hash).

Only Chef::Resource::Script derived class resources may be specified to guard_interpreter (verified in specs).

RFC is out of date, updating after I finish docs: Implementation of the latest feedback on https://github.com/opscode/chef-rfc/blob/adamed/resource-guard/rfc0001-resource-guard.md.