hg module cleaned up

There is no perfect code, but as far as I can tell, this revision is the cleanest at the moment.

It follows git module's implementation.
This one is newer than the preview two days ago on Google Group, by the way.

Now options are:
``` text
repo
dest
revision
purge - alias for hg clean / hg purge, defaults to no
force - alias for hg update -C, defaults to yes
```

Major changes:
1. error handling relies on hg's stderr and `module.fail_json`
2. no more health checking such as `hg verify`
3. omitted `state` option
4. changed is determined via `before != after`, or whether it's been cleaned or purged.


ps: I hope the git fetch and merge didn't fail me. 

Thank you!