This was more complex than would be expected. unannex has to use git commit -a since it's removing files from git; git commit filelist won't do. Allow commands to be added to the Git queue that have no associated files, and run such commands once.
Also, moved commit function into Git proper, it's not union merge specific.
It was always imported qualified as Git anyway