Only ignore existing matches if preserve_all_lines is used

That option is documented to disable convergence, while preserve_block
should respect existing occurances of the promiser within the selected
region.

Redmine #1525
Actually I think it will fail on Windows regardless, since it doesn't handle newlines in the shell properly. I suggest:

<pre>
      "$(G.printf)"
        args => '"###############\n### This file is managed by CFEngine\n### Do not update it manually, oh no\n### do not\n###############\n" > "$(G.testfile).actual"',
        contain => in_shell;
</pre>