rebase -i: return control to the caller, for housekeeping

Return control to the caller git-rebase.sh to get these two tasks

    rm -fr "$dotest"
    git gc --auto

done by it.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
rebase: implement --[no-]autostash and rebase.autostash

This new feature allows a rebase to be executed on a dirty worktree.
It works by creating a temporary stash and storing it in
$state_dir/autostash before the operation, and applying it after a
successful operation.  It will be removed along with the $state_dir if
the operation is aborted.

The feature creates a special stash that does not affect the normal
stash's reflogs, and will therefore be invisible to the end user.
This special stash is essentially a dangling merge commit which has
reasonable lifetime specified by gc.pruneexpire (default 2 weeks).

Most significantly, this feature means that a caller like pull (with
pull.rebase set to true) can easily be patched to remove the
require_clean_work_tree restriction.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
t3400 (rebase): don't set GIT_AUTHOR_{NAME,EMAIL}

test-lib.sh already sets a sane GIT_AUTHOR_{NAME,EMAIL} for all test
scripts to use.  Don't unnecessarily duplicate the work.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
t3400 (rebase): downcase a couple of test titles

Otherwise they stick out like sore thumbs in the test output, where
all the other titles begin with a lowercase letter.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
t3400 (rebase): move lone statement into a test

'rm -f B' is a lone statement that isn't contained inside any
test_expect_* block.  Use test_when_finished to execute it after the
preceding test has finished.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
t4300 (rebase): don't unnecessarily set GIT_TRACE

A couple of tests execute 'git rebase' with GIT_TRACE set to 1, but
this trace output is not used anywhere.  Remove it, since it is not
relevant to what we are testing.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
t3420 (rebase-autostash): write tests

WIP