Change logic so that bad patches cause a failure.

The previous logic was to only attempt to apply a patch if it would
apply cleanly. This had one desired effect; it wouldn't keep trying
to apply the same patch. But it also meant that it wouldn't try to
apply a patch that wouldn't apply, which meant such patches would
silently be ignored.

So this change modifies that logic to try and apply the patch unless
it can cleanly be reversed. That is, it tries to apply it unless
it has already been applied. So a bad patch is attempted and will
fail generating a Puppet error, meaning the problem can be addressed.
Merge pull request #1 from tdb/fail_for_bad_patches

Change logic so that bad patches cause a failure.