look out for case-preserving filesystems

GIT shouldn't set 'ignorecase' on case-preserving filesystems automatically.  These fixes check more carefully for case-preserving filesystems.