Factor out prereqs for all subcommands from split

Also change filter-branch's backup directory from refs/subhistory-tmp to
subhistory-tmp/filter-branch-backup, so that it can be deleted with the
rest of .git/subhistory-tmp/ (the deletion of which is also factored
out).

Specifically:
- first arg <subproj-path> (relative to current working directory)
  parsed to $path_to_sub (relative to toplevel), now subhistory_split's
  only args-checking is a one-liner, and doesn't need $orig_wd anymore
- being at toplevel, needed by filter-branch
- creating and deleting a temporary directory, .git/subhistory-tmp/,
  which will be needed by merge (for a map reversing split) and
  expectedly other subcommands too
README mentions no "run from toplevel" requirement

Because that shit makes my blood boil. Went through nontrivial shit to
get a normalized $path_to_sub, necessary for `git rm --cached -r`, to be
used by subhistory_merge().
Move Descriptions above Example in README

The example is dumb and bad; it's unclear to a reader who doesn't know
what to expect, and is unhelpful to a reader who knows what to expect
and will be worried about corner cases, and because it lacks corner
cases is a worthless test case.

But for now move it below the descriptions.
First pass subhistory_merge() works!!! #big #itsHappening

Hacky new internal API: internal to git-subhistory.sh, can set
$commit_filter before calling subhistory_split() and it will be used as
the --commit-filter. For use by subhistory_merge(), obviously.

There's some extra commits in the test that aren't in the README example
to test edge cases (also the README example is bad).