Delay evaluation of guard_interpreter

We currently evaluate guard_interpreter on the parent resource immediately when evaluating a conditional during compilation. This is an issue if you happen to put your guard_interpreter after your conditional in your recipe. But, we don't actual execute the conditional until later during compilation Chef::Resource #run_action -> #should_skip? -> Chef::Resource::Conditional#continue?. This moves the evaluation of the guard_interpreter attribute to #continue?.

Fixes #1943
Yeah, checking arguments here is fine. I think this means we should remove `raise ArgumentError, "only_if/not_if requires either a command or a block" unless @block_given` on line 62 since it's now redundant AFAICT.