Update for new exception syntax.

Python 2.6+ introduced a new syntax for catching exceptions with the exception
value. Instead of `except Exception, e`, it's now `except Exception as e`,
which is really much nicer. Since we're 2.6+ only now, we can convert to this.

Testing done: Ran unit tests.
Reviewed at https://reviews.reviewboard.org/r/4876/
Fix post-commit diff creation with unicode characters.

The post-commit diff fetch was returning a unicode object, but the guts of all
our diff stuff (Base64Field, hashlib.sha1) expected a str of bytes. This meant
that trying to use post-commit for any change that involved non-ascii
characters would fail with an exception on the backend (and an infinite spinner
on the front). We now explicitly encode the diff to utf-8 before creating the
review request, which fixes these issues.

Testing done:
Created some post-commit review requests for changes that previously failed.

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