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 

/cc: @tyler, @adamedx 

I've run into a slightly complicated case when I was trying to set the default guard_interpreter to be `:execute` in this change. 

Looks like here we are trying to defensive and we're raising if user set a guard_interpreter and gave a ruby_block. This is all nice but when we set a default interpreter, this error is always raised when the user is using a ruby_block for the interpreter. It's just an informational error because when not raised, we just evaluate the ruby_block when evaluating the interpreter. 

I think our options are: 

1. Do something along the lines of https://github.com/opscode/chef/commit/214240ae4571fd1ba4accbb959ecc10382547650 and differentiate between default and current guard attribute
2. Instead this error log a debug output saying "We're seeing a block. We will not use the guard_interpreter blah while running this conditional."

I'm leaning towards 2. Thoughts?