guard_interpreter requires a command

Raises an exception if guard_interpreter is set (not :default) and we are not
given a command (i.e. we are given a block). This is not supported, as we pass
a command to an external interpreter.

Related to #1943
update functional tests for guard_interpreter

we now raise an error when passed a block and a guard_interpreter is
specified other than :default. When other interpreters become the "default"
(which actually means use the default shell for that platform) we will
need to consider those as well, i.e. #1495.
Improve tests for no conditional cases

The tests that ensured we didn't run a conditional when it wasn't specified
had no expectations, so they would always have passed.
nest powershell guard functional tests

reorder the powershell functional tests to provide a framework for testing
with guard_interpreter set and not set (allowing testing the "default",
i.e. values on resource initialization).
test guard_interpreter order

adds a functional test to ensure guard_interpreter can be set after a
conditional.
refactor conditional to evaluate for guards later

If we don't create the guard_interpreter until we're ready to test it,
we're sure to already have all the resource attributes evaluated.

Previously we set up the guard_interpreter upon initialization, that
is when it was first set on the resource.
unit test for guard_interpreter creation during compilation

make sure we don't evaluate the guard_interpreter immediately, i.e. during
compilation of the resource, as the conditional may be seen before the
guard_interpreter attribute.
Refactor resource guard interpreter specs

Refactor the unit tests to not test Chef::GuardInterpreter::ResourceGuardInterpreter
directly rather than through Chef::Resource.
Remove duplicate exception

We already check for command || block_given? in initialize, so
command cannot be nil && not have a block when we get here.
Unsupported block exception is now raised by configure

The fix for #1943 moved some code into a new configure method, which is also
where we now raise if we're passed a block and a guard_interpreter as that is
where we evaluate guard interpreters. This updates the unit test for that
behavior.
Re-remove tests that were removed in 6591d4b2

These tests are no longer correct since we don't allow passing a block with
a guard interpreter.
Update guard functional tests for refactoring

We now raise a little late when given a guard interpreter and a block, mostly
being lazy. This updates the functional test to check the correct code path.
Update CHANGELOG for guard updates