Improve the RBTools configuration docs.

This makes a number of changes to the configuration docs. First, it
fixes the location of the .reviewboardrc docs (which was nested under
Subversion, oddly).

It then expands on the .reviewboardrc docs in a few ways. It recommends
.reviewboardrc over repo-specific configuration (properties and such).
It points to 'rbt setup-repo' and rbt post's default options.

It then covers some of the common options and how to use them, like
TRACKING_BRANCH, BRANCH, and ENABLE_PROXY. These are generally good ones
people may want to set, so we want them to see these right away.

Finally, it rewrites the User Configuration section to talk more about
user-facing options, like ENABLE_PROXY (again) and OPEN_BROWSER, and
removes information about TREES and custom URLs and Python code. People
can always create a .reviewboardrc in the repo directory anyway, and
it's best to not add confusion. This will also hopefully help us move
away from supporting TREES and such down the road.
Speed up rbt post -u.

rbt post -u, in an effort to match draft summaries, was fetching every
opened draft for a user individually and pulling info from them. This
was slow, particularly with lots of pending review requests.

Now it uses the field expansion support in the API to fetch drafts in
one go, reducing the number of calls significantly.
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/