Divide scm-specific modules.
Add mercurial support.
Smail edit.
Merge branch 'multi_scm'