Update the draft filediff test suite to use the new mixins.

The draft filediff support was written before all the new test mixins,
but committed after merging those mixins. It was never updated to use
them. This change fixes that.
Add API for fetching and setting diff file attachments.

There's now a /api/repositories/<id>/diff-file-attachments/ resource
that contains the known, registered diff file attachments tied to a
repository. Nothing on this tree can be modified, only retrieved.

In the future, some file attachments will be automatically associated.
Those that cannot can be modified by issuing a PUT on a draft filediff
resource and passing a file for the file attachment representing the
destination/modified file. Right now, this is allowed for all filediffs
for binary files, but later it will be restricted.
Switch the position of the moved-line flags.

One thing about the new moved-lines detection that bugged me a lot is that the
flags were on the wrong side of the diff columns ("moved from" was on the left
hand side with an arrow pointing to the right, and "moved to" was on the right
with an arrow pointing to the left). This really grated against my intution
that the left hand side was "from" and the right hand side was "to".

I've therefore switched which side each of the flags appears on. This has the
side effect of increasing the amount of vertical space used, because most of
the time we now have to show a flagpole. That said, I think it's a highly
valuable trade-off.

Testing done:
Created some review request with moved sections and saw that things made way
more sense than before.

Reviewed at https://reviews.reviewboard.org/r/4863/
Pass on all exceptions when creating new review requests with diffs.

In most cases, errors parsing the diff file or communicating with the
repository got turned into form errors which would be shown to the user.
Unfortunately, DiffParserError wasn't accounted for, since it inherits directly
from Exception. I've removed the long list of specific exceptions and just made
it catch Exception directly, since we handle everything lower down in the form.
Merge branch 'release-1.7.x'