Un-escape markdown text for 'rbt patch -c'

The patching step was including escaped characters in the description and
testing done, which was annoying to look at, and made it so in the case where
the first line of the description was the same as the summary except for
escaping, we wouldn't collapse them together.

This change adds some code to do the same as markdown_unscape() from
reviewboard.reviews.markdown_utils.

Testing done:
Ran `rbt patch -c` for a few changes on reviews.reviewboard.org that had
escaped descriptions and testing done. Saw the expected results.

Reviewed at https://reviews.reviewboard.org/r/5014/
Fix post -u bug that uses the incorrect summary.

Fix post -u bug that uses the incorrect summary.

If a draft exists for the review request, post -u should use the draft's
summary and description instead of the review request's summary and description
to detect and prompt for the review request to update. This patch fixes the
issue where post -u would always use the review request’s summary and
description even if a draft exists.

Testing done:
Tested with published and draft review requests.
Unit tests passed.

Reviewed at https://reviews.reviewboard.org/r/5041/
Fix Mercurial's _set_summary() and _set_description()

I was experiencing exceptions when using `rbt diff --revision-range`:

Traceback (most recent call last):
  File "/Users/gps/src/firefox/obj-firefox.noindex/_virtualenv/bin/rbt", line 9, in <module>
    load_entry_point('RBTools==0.5.2.dev', 'console_scripts', 'rbt')()
  File "/Users/gps/src/rbtools/rbtools/commands/main.py", line 113, in main
    command.run_from_argv([RB_MAIN] + args)
  File "/Users/gps/src/rbtools/rbtools/commands/__init__.py", line 157, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/Users/gps/src/rbtools/rbtools/commands/diff.py", line 95, in main
    files=args)
  File "/Users/gps/src/rbtools/rbtools/utils/diffs.py", line 13, in get_diff
    repository_info)
  File "/Users/gps/src/rbtools/rbtools/clients/mercurial.py", line 388, in diff_between_revisions
    self._set_description(revision_range)
  File "/Users/gps/src/rbtools/rbtools/clients/mercurial.py", line 379, in _set_description
    if self.options.guess_description and not self.options.description:
AttributeError: Values instance has no attribute 'guess_description'

This patch makes the exceptions go away.

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