Fix :Git! on Windows.

Closes #301, #302.
Unify escaping rules for :Gedit with :edit

In particular, this makes `:Gedit file\ with\ spaces` work, and updates
the tab complete to match.

Closes #305.
Work around archaic encodings

Closes #304.
Add foldlevel to fugitive_diff_restore
Expose detect interface

Closes #311.
Merge branch 'master' into guns

* master:
  Expose detect interface
  Add foldlevel to fugitive_diff_restore
  Work around archaic encodings
  Unify escaping rules for :Gedit with :edit
  Fix :Git! on Windows.
Remove redraw!
Seek to blob name in tree with -
Include tree filename in <C-R><C-G>
Change cp to cP

This has the incredibly self-serving purpose of paving the way for
evaluating Clojure in historical buffers.
Add . to prepopulate command line with revision
Don't dispatch autocommands when calling git commit

Closes #295.
Merge branch 'master' into guns

* master:
  Don't dispatch autocommands when calling git commit
  Add . to prepopulate command line with revision
  Change cp to cP
  Include tree filename in <C-R><C-G>
  Seek to blob name in tree with -
Revert "Remove redraw!"

This reverts commit a9f9bc00da5c38adaabe44eaeb9c193ef2dc2dc5.