Cache Mercurial changeset info

Review Request #5220 — Created Jan. 8, 2014 and discarded — Latest diff uploaded

Information

RBTools
master

Reviewers

This patch introduces more intelligent Mercurial metadata lookup.
Before, the approach was to have rbtools shell out to Mercurial every
time it needed data. This was prone to inefficiencies.

In the new world, we have a class that holds all known state about
the Mercurial repository and provides a just-in-time method to resolve
missing metadata on access.

Not everything uses the new mechanism yet. But I think this patch
represents a good half-way point from which additional improvements can
be built upon.

Test suite passes.