Handle Mercurial diffs as byte strings
Handle Mercurial diffs as byte strings

Mercurial diffs were previously treated as UTF-8 strings, which may fail if the
file has another encoding. It may cause utils.process.execute to raise a
UnicodeDecodeError, since it decoded with only UTF-8.

I have changed clients.mercurial to supply "results_unicode=False" when running
the diff command. This seems to be in line with what is done in clients.git and
clients.svn.

Testing Done:
- Used rbt post to upload a diff that converts a file (with non-ASCII
  characters) from UTF-8 to Latin-1, and vice versa, with success.
- Used rbt patch to apply the diffs

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

davidt/rbtools,datjwu/rbtools,haosdent/rbtools,reviewboard/rbtools,davidt/rbtools,davidt/rbtools,datjwu/rbtools,haosdent/rbtools,beol/rbtools,haosdent/rbtools,beol/rbtools,datjwu/rbtools,beol/rbtools,reviewboard/rbtools,reviewboard/rbtools