Fix creating a new review request from the first committed change

Creating a new review request from committed change by selecting the first/root
commit in a linked GitHub repository failed because the root commit has no
parents. This raised a SCMError when trying to fetch the "compare two commits"
API.

The fix is to check if "parent_revision" is empty before trying to fetch
"compare two commits". If "parent_revision" is empty, it fetches the root
commit itself.

Testing Done:
- Manually created new review requests for a root commit with 1 changed file
  and for multiple changed files, and verified that "View Diff" listed the
  expected changes (for both a private and a public GitHub repository).
- Ran unit tests.

Bugs closed: 3207

Reviewed at https://reviews.reviewboard.org/r/5321/
Fix error reporting for API requests in the commits view and elsewhere.

The commits view wasn't showing any error responses when failing to
create a review request. It now displays an alert and clears the
spinner.

While working to fix this, I realized our error handling wasn't correct.
We weren't taking in the correct parameters in syncOptions.error that
RB.apiCall passes, and we weren't passing the arguments that Backbone's
wrapError expects. This now wires everything up so that errors coming
from the server will be properly represented in error handlers.