Fix config and write some simple tests for it
More tests for methods in the engine
Go back to storing instances

Rather than actions. This removed a whole load of code we're not using
any more
Not all resolutions are always correct here
Fix case where the resolver gets it wrong.

If you have 2 instances at the wrong version, and only 1 of them is
participating and that one happens to come first, before this patch
we would try to stop the participating one from doing so, and so blow up
with the validation in check_valid for the DisableParticipation action.

Instead, we filter out actions such as this, meaning that in the above
case we'd upgrade the non-participating instance, which would then
enable us to safely disable the participating instance in a subsequent
step.

We catch the case where we filter out all possible actions and explode
if there was work to do, but none of it was valid work.
Yet another ruby 1.8 vs 1.9 fix