vcview: Add rough command() API for taking VC actions from other tabs

The idea here is simply that file tabs should be able to run actions
using their parent VC, without being exposed to the whole task
infrastructure and meld.vc shim layer.
vc.git: Add 'resolve' support for git, which is just git add...
misc: Add modal_dialog helper, to accompany the error_dialog one

This should rarely be needed, but there are some places where modal
interaction really is the only sane option.
Support passing along a bunch of metadata to tab creation

The goal of this is to allow some degree of parent-child communication,
mostly for file comparisons launched from VC tabs.
WIP: Port to C++