Stop using patch option -E

GNU patch version 2.5 and newer deals just fine with empty files,
however our use of option -E breaks this feature. So stop using this
option. Anyway, the manual page says: "Normally this option is
unnecessary" and the test suite passes just fine without it.

If anyone is using legacy patch formats which do require the use of
option -E, they can add it to QUILT_PATCH_OPTS to revert to the
previous behavior.
Add a test case for patches leaving empty files

For now this only covers the push and fold commands on imported patches,
which we just fixed. Later we can add tests for the refresh command,
which is still not OK.
Add missing entries to quilt.changes
test/refresh_patch_order.test: enforces the file order within a patch
Fix refreshing of patches emptying a file

Quilt can now import patches emptying a file, however the proper
header formatting is lost on refresh. Fix it.

The format is still not correct for patches creating a file. This is
because quilt creates an empty backup file for every non-existent file
being added to a patch. This is how quilt remembers that the file is
modified by the top-most patch. Ideally the list of files belonging to
the top-most patch should be stored separately in a metadata file.
That being said, it is not critical in practice because GNU patch
makes no difference between adding contents to a new file and adding
contents to an empty file.
Test quilt refresh on a patch leaving an empty file

Add a test case for "quilt refresh" on a patch leaving an empty file.
We were already testing that imported patches doing that were handled
properly, now we want to ensure that refreshing such patches preserves
the information.
Document that -E is no longer passed to patch by default

Explain why -E is no longer passed to patch by default, and why a
user may want to revert to the old behavior.

Based on a preliminary patch by Martin Quinson.
empty-files.test: Coding style update

Use the same syntax for file testing as used in other test cases. It
is more readable and avoids having to add yet another condition for
$needs_shell.
Exit with an error when diff's retcode=2 (error) on patch refresh

This is trigered e.g. when you try to add a binary file to a patch.
This is actually creepy to think that we were not checking the
retcode of diff :)
Forgot to add a changelog entry again...