Move DiffFileIndexView out into its own file.

This isn't used anywhere except the DiffViewerPageView, but neither are any of
the other views that make up the diff viewer, and the page view implementation
is a pretty big file.

Testing done: Smoke tested the diff viewer.
Reviewed at http://reviews.reviewboard.org/r/4642/
Add some very simple tests for the parse() methods in diffviewer models.

The diff viewer has several new models that aggregate bits of data required to
build the page. This change adds unit tests for the parse() methods, which
convert the names in the webapi into javascript-style camelCase names.

Testing done: Ran js-tests.
Reviewed at http://reviews.reviewboard.org/r/4643/
Add API for working with drafts of diffs.

There was no way, through the API, to get an existing diff uploaded as a
draft. One could be created by issuing a POST, and the payload would be
returned, but the links to the resource in that payload would result in
a 404 due to the diffs resource not showing draft diffs.

This fixes this by introducing a new
/api/review-requests/<id>/draft/diffs/... tree that mirrors the public
/api/review-requests/<id>/diffs/... tree. Diffs that are part of a draft
will link there. The client can inspect this to see everything that will
be published.