Add a centralized list of API error codes.

Right now we don't use the API error codes very much from our frontend code, but
I'm expecting that to change as we make things more dynamic. This adds a
centralized list of them so we don't sprinkle constants everywhere.

Testing done: ran js-tests, used the codes in my new review request rewrite.

Reviewed at http://reviews.reviewboard.org/r/4305/
Make RB.ReviewRequest and RB.Diff somewhat more suited to creation.

This change makes it easier to use RB.ReviewRequest and RB.Diff for creating new
objects on the server.

Reviewed at http://reviews.reviewboard.org/r/4306/
Add a "supports post commit" flag to SCMTool and HostingService.

This adds a flag that we can access to know when we're able to create
post-commit reviews.

Reviewed at http://reviews.reviewboard.org/r/4314/
Adjust the way that parent revision numbers are computed for SVN.

In the get_change implementation for SVN, I was just subtracting one from the
revision number to get the parent to diff against. This works for a typical SVN
server, but I was worried that it might fall down for wacky things like GitHub's
subversion layer. I've changed it to use the cached parent if available, and if
not, use the next item in the log.

Testing done: Ran unit tests.
Reviewed at http://reviews.reviewboard.org/r/4316/
Implement post-commit review request creation.

Our webapi already has the plumbing necessary to create post-commit reviews, and
in a few previous changes I added the scmtools/hostingsvcs infrastructure for
fetching the necessary data. This change bridges the gap by making
update_from_commit_id do the right thing if said commit_id refers to an already
committed revision on a repository that supports get_change.

Testing done:
- Ran unit tests.
- Used this with my UI.

Reviewed at http://reviews.reviewboard.org/r/4315/
Make the diff viewer prettier and cleaner.

This polishes up the look of the diff viewer a bit. The highlights
include:

* Removed lots of unnecessary borders, that separated content, instead
  relying on the backgrounds and whitespace for the separation.

* Softened the colors, making the reds and greens and browns less harsh.

* The borders around the chunks are now based on the color of the chunk,
  instead of a generic grey.

* Removed a lot of the borders on the file header. The header is now one
  box instead of three or four.

* The moved line indicators are simpler and less bulky. The font size
  has been reduced, the complex background is gone, they have more
  consistent padding, and they are now flush up against each other.

* The table borders are rounded, making them more consistent with the
  other boxy bits of the UI.