test: beware paths with spaces

All the test need to make sure to quote $TEST_DIRECTORY and $GIT_BUILD_DIR
because there may be spaces in that path.
REVERT THIS COMMIT: t/Makefile: run my tests first
ignore-case tests: these test show inconsistent behavior

<first test> sets ignore_case=false, then sources ignore-case.sh

<second test> sets ignore_case=true, then sources ignore-case.sh

ignore-case.sh tests four things
* fast-import
* recase, modify, status
* recase, modify, add
* recase via git mv

An example of a recase would be this...

$ mv FileName.txt filename.txt

Regardless of the filesystem used, git should implement consistent
behavior.  The ignore-case feature can trigger inconsistent behavior
especially when the same git action is performced on different filesystems.

These tests show the inconsistencies, the following commits correct them.
add a TODO note
fast-import.c: ignorecase iff explicitly told to

fast-import *should* import exactly what it's told to import down
to the exact case of the filenames.  If case folding is enabled,
the import will not produce the same commit ids, so we don't want
git to fold case by default.

This change adds the --ignore-case option to git-fast-import.  The
default is to not ignore the case, IOW, to honor the case.
diff-lib.c: use fileprobe to match recased files
mv.c: allow recasing a file on case preserving fs

On a case preserving fs, git mv will fail when you try to mv a file like
this...

$ git mv FileName.txt filename.txt

...because the filesystem thinks both files exist when, in actuality,
it's the same file.

In the else if block where git checks to see if the destination exists,
also make sure the src and dest inodes are different.  If the inodes are
the same, allow the mv.