Open commit instead of file to create a tab

It appears that the only reason we use Gtabedit is to get a new tab
where fugitive functions will work correctly. HEAD is a real file, so
editing it doesn't work, but the tree referenced by HEAD is not, so
we have a stronger guarantee that it will work correctly.

When we edit HEAD, we are editing .../.git/HEAD, but HEAD:
doesn't actually exist so fugitive can't be confused by the path.

Related to tpope/vim-fugitive/issues/309
Fixes #40.
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).
Merge pull request #55 from pydave/fix-submodules

Fix gitv for submodules