Return an error when trying to POST a diff on a review request with no repository

The diff-list API didn't check that the associated ReviewRequest had a
repository before it started trying to parse things and validate the uploaded
data. This meant that trying to add a diff (likely via rbtools) to an
attachments-only review request would cause an exception on the server.

I've added a test for this, and fixed the bug. While I was trying to decide on
the right WebAPIError to use, I noticed an ugly misalignment in errors.py, so
I've fixed that too.

Testing done: Ran unit tests.

Fixes bug 3258.

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