magit-fetch-popup: add magit-submodule fetch
refs: make unmerged-commits counts optional

In `magit-insert-branch-1' only calculate the number of unmerged files
if FORMAT (`magit-local-branch-format' or `magit-remote-branch-format')
contains "%c".  In `magit-insert-tags' only do so if `magit-tags-format'
contains "%c".  Add new variable `magit-refs-indent-cherry-lines'.

Calculating the number of unmerged commits is less demanding than
calculating cherry commits, but it's still to slow in big repositories.

To avoid doing so use something like:

(setq magit-local-branch-format "%C %-25n %U%m\n"
      magit-remote-branch-format "  %-25n %m\n"
      magit-tags-format "  %-25n %m\n"
      magit-refs-indent-cherry-lines 0)

Also see #1674.
magit-remote-set-url: new command
magit-insert-{unpulled,unpushed}-module-commits: bugfix
magit-format-patch: bugfix
magit-popup-font-lock-keywords: properly quote face symbols
polish font-lock keywords

This might or might not make a difference,
but I am seeing heisenbugs so here we go.
magit-git-standard-options: add --literal-pathspecs

Previously we set $GIT_LITERAL_PATHSPECS in `magit-call-git'
and `magit-start-git' but has no effect when using tramp.
magit-mode: call hack-dir-local-variables-non-file-buffer
define the more important major-mode hooks explicitly
magit-mode-hook: offer bug-reference-mode as an option
magit-revision-mode-hook: fix typo
refs: using error face when upstream is gone
magit-insert-tags: avoid ambiguous tag name matches

and having to call `git tag' more than once.
magit-{git-dir,toplevel,expand-git-file-name}: add LOCALNAME arg
fix stashing in repositories accessed using tramp

Tramp does not support setting the environment for a single process,
but we need that to set GIT_INDEX_FILE when stashing and in some other
places.

So add a new variable `magit-tramp-process-environment' and advice
`tramp-sh-handle-start-file-process' and `tramp-sh-handle-process-file'
to inject the variables into the command executed on the remote.

Adapt `magit-with-temp-index' to take advantage of this.