cherry-pick: better error message when the parameter is a non-commit

When copy&paste goes wrong, and the user e.g. tries to cherry-pick a
blob, the error message used to be:

	fatal: BUG: expected exactly one commit from walk

Instead, now it is:

	fatal: Can't cherry-pick a blob

Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
rev-parse: add --filename-prefix option

This adds a prefix string to any filename arguments encountered after it
has been specified.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
submodule: drop the top-level requirement

Use the new rev-parse --prefix option to process all paths given to the
submodule command, dropping the requirement that it be run from the
top-level of the repository.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jk/submodule-subdirectory-ok' into pu

* jk/submodule-subdirectory-ok:
  submodule: drop the top-level requirement
  rev-parse: add --filename-prefix option
Merge branch 'mv/sequencer-pick-error-diag' into pu

* mv/sequencer-pick-error-diag:
  cherry-pick: better error message when the parameter is a non-commit