Process mercurial diffs in binary mode.
Process mercurial diffs in binary mode.

The mercurial client in RBTools had never been updated to use unicode_literals,
and hadn't been audited to make sure we weren't trying to mix unicode and str
objects. This change converts things to use unicode everywhere that's
appropriate, and process the diffs entirely as bytes.

Testing done:
Ran unit tests.

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

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