Fix write to index with msysgit bash

Closes #388.
Don't set global foldlevel

Without this change, Fugitive will routinely overwrite the global foldlevel. It shouldn't.
Fix unmatched parens in :Gmove
Add ability to query current Git version
Work around new status style in 1.8.5

Closes #393.
Fix slowness when searching for networked git repos under Cygwin.

The algorithm in fugitive#extract_git_dir() is to move upwards in the
file system hierarchy until a sub-directory called .git is found. When
accessing a file on a network share from a Cygwin Vim and the file is not
within a git repo, this eventually causes a check for the existence of
//serverName/.git and //.git. Such checks are extremely slow so let's
avoid them.
Add & modify autocmd events `FugitiveBoot` & `Fugitive`

- Change old `Fugitive` to `FugitiveBoot`

- Put `Fugitive` at the end of fugitive#detect
Reopen diff folds when diff ends

References #36.
Focus diff window on :Gdiff

References #36.
Respect GIT_CEILING_DIRECTORIES
Store more than just dir in s:temp_files

- Also store 'args', the git arguments used to generate the temp file
Look for $GIT_DIR and $GIT_WORK_TREE

There are rare situations where a user has manually specified what they
wish to use as their work-tree directory, and even rarer situations
where the user wishes the Git directory to be customized. In the case
the user has set these using environment variables, vim-fugitive takes
advantage of these settings in order to set up.

Note that git-config(1) allows setting the work-tree and Git dir in
a number of ways (see the core.worktree) setting. This change only
respects the environment variable method, not the config file method.
Place extra emphasis on a clean history
Improve heuristics for status section detection

Closes #440.
Fix version regex
Check `&diff` first in fugitive_diff autocmds

This avoids calling `s:diff_window_count` in the common (non-diff) case.
Turn off swap files in all URL buffers

References #202.
Improve keepjumps situation
Support :Gcommit --patch

Closes #452.
Accidental omission from previous commit