Guards of execute resource doesn't inherit command options from its parent resource

* Replaces https://github.com/opscode/chef/pull/2105.
* Removes `path` attribute from `execute` resource which is never backed by any logic.
* Adds a new guard interpreter for execute resource that can inherit :cwd and :environment from the original resource. 

There is an open question of: 
```
# TODO: Do we want to also get :group, :user, :umask ?
```

/cc: @opscode/client-engineers 

Ah, gotcha.  In that case I agree with you - I am leaning towards option 2, but I think it should be a warning message.  If users see this warning message it should be a pretty easy fix - decide to use only a block or a string with a guard_interpreter.

Do we know if there are any users who generated a guard with a method?  Like

```ruby
def generate_guard
  return { true } if block_needed
  return "true"
end

execute "something" do
  only_if guard
end
```

That would be the only time I can see that someone would get this warning message repeated all the time.  But if they are doing this, I think logging a message instead of failing the chef-client run helps them.