Use `for` instead of `while test $#!= 0 ... shift` #cosmetic

Turns out there's an efficient built-in way to loop over arguments.
On cont'd lines, don't indent redirection #stylistic #cosmetic

Contrast arguments, which on continued lines I do want to indent.
Fix auto-generated merge commit message

Had to copy code from git-merge.sh that really should just be part of a
git utility.
Much more fleshed out example than foo/bar shit

Last 2 hunks easier to read with --word-diff, basically replaced
mentions of foo/bar and merge-bar with a-Sub-thing/another-Sub-thing and
HEAD, respectively.
split's descr. mentions it's just --subdirectory-filter
Require first arg <subproj-path>

Elsewise `git filter-branch --subdirectory-filter ''` just recommits
everything on the current branch.
Friendlier error message if mkdir "$tmp_dir" fails