Merge branch 'allow-cat-while-in-progress'

Allow inspection commands to be used while an integration is
in-progress.  There has never been a good reason for disallowing these
commands, they were just caught in a wide net.

* allow-cat-while-in-progress:
  Infer branch name correctly when rebuilding
  Allow --cat and --status to be performed while rebuilding
  Refactor "integration in progress" logic
Add an 'empty' instruction

This is used to insert an empty commit into an integration branch.  For
example, in git.git the maintainer inserts an empty "### match next"
commit into the 'pu' branch to indicate that that point should be
tree-identical with the head of the 'next' branch.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: John Keeping <john@keeping.me.uk>
Merge branch 'empty-instruction' into pu

* branch empty-instruction:
  Add an 'empty' instruction

Add an "empty" instruction to allow the insertion of empty commits to
annotate points in an integration branch.
Merge branch 'exec-instruction' into pu

* branch exec-instruction:
  Add an "exec" instruction
  Avoid opening the same file twice

Add an "exec" instruction to permit the execution of arbitrary
commands.

The security aspects of this might need some more thought; perhaps the
"exec" instruction should be disabled unless a config key is set.

Conflicts:
	git-integration.sh