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.
also, it should use `self.log.error`:

```python
if not HAVE_HG:
    self.log.error("The python-hglib Python module is not available, which is required for Mercurial support.")
```