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
Disable unforked interval runs.

Clarify error message.

Move fork and interval logic to application (specs pending).

Clean code logic, fix specs.

Allow unforked client runs with daemonize or splay
Do interval and splay sleep before running client.
Reconfigure signal trapping.

Exit gracefully when sent TERM

Fix spec.
Update for removed unforked interval client runs.
Tidy up some comments, whitespace.
Fix wording, add updates for interval sleep first, signal processing
Test signal safely on windows