Split hg/git support into specific modules.
Merge remote-tracking branch 'linkmauve/master'