Don't return False on `file.sed` if no changes, check retcode instead

Issue #4481 gives a completely valid use case for `sed` which results in
the `begin` pattern always being present.  `sed` should not return False
in this case.

We now check the retcode for `sed` to see if there was any problem.  A non-zero retcode is now the only way the `file.sed` state will return False.

I also did a few small fixes to win_file.py, as I was going through making sure that changing the `file.sed` module function to use `cmd.run_all` wouldn't hurt anything.