[WIP] Add support for multi-commit review requests.

Review Request #6618 — Created Nov. 21, 2014 and discarded — Latest diff uploaded

Review Board
reviewboard, students

Add the a diffviewer.Commit model. Each Commit belongs to a
DiffSet (which may have many commits) and may have many FileDiffs.
However, an old-fashioned review request (of squashed changes) will
not have any Commits associated with it.

Add a foreign key on the FileDiff model which links it to a
Commit. Every FileDiff still corresponds to a DiffSet, but they
now can optionally correspond to a Commit.

Add a RelationCounterField on the DiffSet model to keep track of
the number of Commits corresponding to the DiffSet. This way, the
DiffSet can easily be checked if it is a multi-commit review request
or not.

Add evolution (new_commit_fields.py) for new fields on FileDiff
and DiffSet.

- Add an API endpoint so that multiple commits can be attached a review