When reporting a resource, before and after should always be a hash

If a Resource (or LWRP) overrides Resource#state (meaning to set an
attribute named state) this collides with the state function used to
gather up the state_attrs

Fix this by not using Resource#state, but copying that logic
into ResourceReporter#state.

Leaving Resource#state as it's used by other things.  A full fix so
LWRPs can't override functions in Resource is in scope for Chef 12
Merge branch 'jc/CHEF-4614/state-is-hash'