Fix issues with deleting comments on replies.

We've had some long-standing issues deleting comments on replies.
Deleting comments using the reviews/<id>/replies</id>/*-comments/ URLs
was supposed to work, but we didn't have any tests covering this and
never noticed we didn't have proper has_delete_permissions functions for
these resources.

The has_delete_permissions functions for comment classe have moved from
the subclasses into the base classes. This will ensure that any subclass
that enables deletion will do the right thing.

While writing tests for this, I also found that our diff comment
querying behaved differently from screenshots and file attachments. They
were only accessible for public comments or when the requester owned
them. This was unnecessary, and we really wanted to return Forbidden in
this case. Diff comments have been updated in this case to match what
the other comments do.
Merge branch 'release-1.7.x'
Move more review request editing responsibilities to the model.

While moving things into ReviewRequestEditor*, much of the logic needed
to be in the view until we were more or less complete with the transfer.

Now, draft publishing, field setting and validation live in the model.
The view listens for events and calls into the model for more things.

The ReviewRequest model and associated draft are now instantiated with
the content from the database, meaning we can now work with the raw
content in the model instead of processing data in the DOM.

This last part had an impact on load order in reviews.js, so some things
had to be shifted around.
Add "destroying" and "destroyed" signals to BaseResourceModel.

"destroying" is triggered as soon as the destroy() call is called.

"destroyed" is triggered after a successful destroy.

Note that Backbone.js provides a "destroy" signal, but this doesn't
follow the naming conventions we're otherwise using.
Add a publish function to DraftReview.

This is used to publish a review. It will emit the "publishing" signal
when called and "published" when the publish finished.
Don't require the existence of review request field elements.

The purpose of this check was to make sure the review request fields
all had their proper elements on the page, which is useful for
debugging. However, file attachments and screenshots don't have the
fields, causing them to break. The easiest thing is to just remove the
check.
Add Depends On and Blocks fields to review requests.

This feature adds the ability to link requests together by means of two
fields; depends on, and blocks. These relationships are interconnected
in the sense that, if Request A depends on Request B, then inversely
Request B's blocks field will display a link back to Request A.

This adds the ability to add, edit, and remove dependencies from both
the backend admin panel as well as in the front-end.

Blocking relationships are built as a reverse of dependency, and thus
are automatically generated upon a dependency change.

Fixes bug #281
Reviewed at http://reviews.reviewboard.org/r/3881/
Merge branch 'release-1.7.x'
Fix the review request page when not logged in.

We weren't loading all the various JavaScript objects for the review
request page if not logged in. This was a relic of old logic. It's been
removed.