Start improving rbtools test suite.

There are a bunch of things that make working with the rbtools test suite
annoying. This cleans up some of them:
* Change some docstrings to always use "Testing ...", so we get consistent
  output.
* Reformat some docstrings so we don't truncate test case names.
* Create a bare git repo in a testdata directory so we don't have to initialize
  a new repo every time we do `setUp()` (note that we still clone it for each
  test). This will also make it much easier to add new branches and commits to
  test other features.
* Create a static home directory to use for things like .gitconfig, so we don't
  have to create them each time.
* Get rid of all the inline diff content and just check if the md5 hash matches
  what we expect.

Testing done:
* Ran test suite.
* Checked that the hashes of the diff content match the ones used in the new
  assertion checks.

Reviewed at https://reviews.reviewboard.org/r/5111/
Make check_options raise an error instead of exiting.

The SCMClient.check_options method as written would print an error message to
stderr and called sys.exit(). This is kind of a crummy design, which meant that
running our test suite would have some errors printed in the middle of the
suite output.

I've changed this to raise an exception instead, and replicated the print/exit
behavior in the two non-test places that call it.

Testing done:
Ran unit tests

Reviewed at https://reviews.reviewboard.org/r/5112/
Create testdata/hg-repo and start using it for hg client tests.

Like my previous change to create a git repo to use as a base for client tests,
this creates a mercurial repo.

Testing done: Ran unit tests.

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