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
From where we call Conditional.new in Chef::Resource, we shouldn't get initialized without a command or block, but since that's a requirement of this class we ought to continue to check here.

https://github.com/opscode/chef/blob/master/lib/chef/resource.rb#L571

I could move the raise below up to the the top of initialize. The other raise on new line 66 is in case we're passed a command but it wasn't a string. We could check that in initialize too, just so it happens early, it was just more convenient here since we're already looking at the class type of command here.