Clean up MercurialClient a little bit.

This moves some code around and makes some changes for consistency and more
idiomatic python, and refactors initialization-type things out of
`get_repository_info()`, making it stateless.

Testing done: Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/5156/