New user option: vc-allow-async-diff
Centralize the control for whether 'vc-diff' is asynchronous
across the backends, while also allowing 'vc-BACKEND-diff' to be
called asynchronously when needed. Previously in bug#21969.
* lisp/vc/vc.el (vc-allow-async-diff): New user option.
* lisp/vc/vc.el (vc-version-diff, vc-diff, vc-diff-mergebase)
(vc-root-diff): Obey it.
* lisp/vc/log-view.el (log-view-diff-common): Same.
* lisp/vc/vc-annotate.el
(vc-annotate-show-diff-revision-at-line-internal): Same.
* lisp/vc/vc-git.el (vc-git-diff): Follow the ASYNC argument.
* lisp/vc/vc-hg.el (vc-hg-diff): Same.
* lisp/vc/vc-rcs.el (vc-rcs-diff): Same.
(cherry picked from commit
bec823b107ef7d3b51b8e430ccab82c81bd63d24)