Add mercurial repository support.

Unit tests are not coded for the moment, I would like to discuss if a tiny mercurial repo should be embedded in source tree or remotely on bitbucket or others.
Yes and only git and hglib module are concerned. Just apply a minor fix to catch OSError exception for cloning step.