Redo the "New Review Request" UI.

This is a mostly complete rewrite of our "New Review Request" page to support
both pre- and post-commit reviews.

For repositories which support it (currently SVN and GitHub), it shows two
sections: "New Review Request for Pending Change" and "New Review Request for
Committed Change".

The pending change workflow is similar to what we had before in its
functionality, but it's a bit more streamlined (in the simplest case, it's just
"click on the repository name and then drop a diff file in the box"). It also
tries a little bit harder to validate that the diffs that people create are
valid before actually putting anything in the database, and shows some better
error messages (especially in the case of git without --full-index).

The one feature that the old forms had was parent diff support. I've decided
that for now, it will just point people to using rbtools.

The post-commit workflow is super easy--select a branch, and select a commit.

Testing done:
- Created a ton of review requests against various different repositories.
  Verified that I can do post-commit requests for GitHub and SVN, and that I
  can do pre-commit requests for any repo.
- Checked that the "None" repo allows me to create an empty review request.
- Ran js-tests and python unit tests
- Ran jshint

Fixes bug 100.
Reviewed at https://reviews.reviewboard.org/r/4215/