Use fugitive commands where possible

Instead of approximating our own behavior, use these functions:

fugitive#buffer().repo().tree()
    - The working copy for the current repo.

fugitive#buffer().repo().dir()
    - The repo dir containing the git database.

fugitive#buffer().repo().git_command()
    - A pre-built git command (with the fugitive-configured git
      executable and --git-dir argument).

Remove some functionality made redundant by fugitive.

Public API change: Removes Gitv_GitExecutable -- we now rely on
fugitive. Currently, you can configure fugitive's executable with
g:fugitive_git_executable.

Fixes reloading browser mode (u mapping) from a submodule (related
to #40).