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.