Fix and improve parts of rbt patch.

There were a few things with rbt patch that made usage difficult.

It wouldn't allow for creating a commit if there was even one untracked
file in the checkout, even though those shouldn't have been a factor.
They were a factor, though, because of the next issue, which was that
every single file (tracked and untracked) would be committed along with
the patch. It would do this in order to include any files modified or
introduced in the patch.

The cleanliness restriction has been reduced. Tracked files with
modifications in the working directory or index will now prevent rbt
patch from creating a commit, but untracked files will not. When calling
`git apply`, we now pass `--index`, which will apply the changes to the
index, including the addition of any files. This means we only need to
do a plain `git commit` at the end.

And last but not least, the change from a `rich_text` field in the API
to `text_type` broke unescaping, but unescaping can now be done
server-side. We now pass `?force-text-type=plain` to get the
unescaped version. (This parameter is simply ignored for older
releases.)
Merge branch 'release-0.5.x'
Calculate outgoing Mercurial changesets from current revision

Previously, RBTools calculated outgoing Mercurial changesets by asking
Mercurial about *all* changesets on the current branch not in the
remote. While this works, it's not ideal. This querying is expensive
since it pulls in all changesets, not just ancestors of the eventual
changesets.

With this patch, we now pass "-r ." into hg outgoing. This limits the
lookup to changesets that are ancestors of the working copy. In some
repository configurations (such as my own, where I have bookmarks
tracking thousands of changesets that will never be pushed to the
remote), this drastically speeds up diff computation and makes RBTools
faster.

Reviewed at https://reviews.reviewboard.org/r/5066/
Don't install RBTools on Python < 2.5

This adds a check to setup.py to enforce a minimum python version, like the one
we have for Review Board.

Testing done: Tried installing on a system with 2.4.x and saw the error.

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