Upgrade our copies of Backbone.js and Underscore.js.

We're now using Backbone 0.9.10 and Underscore 1.4.4, which are the
latest versions. These may introduce subtle backwards-incompatibility
problems, but we'll find that out over time. We need these new versions
for some of the new JavaScript code.
Fix server communication and handling in BaseResource.

BaseResource now sends POST/PUT data to the server using encoded form
data instead of Backbone.js's default JSON encoding. It goes through
RB.apiCall for now, so that all our behavior (such as the "Loading..."
indicator) works as expected. It also parses the error response to give
us an appropriate error message from the server.

Some fixes were made to save(). Previously, it would fail to create new
objects, because it didn't have a url at the right time. This needed to
happen after the object was ready and its parent resource, if any, was
known to be created.

parse() now ensures that rspNamespace is filled out, so we don't have
weird 'undefined' errors when a subclass isn't written correctly.

And finally, save(), fetch(), destroy(), etc. take a context parameter
for the callbacks. This is something Backbone.js should really be
providing, since it establishes this pattern with other callback-reated
functions, but it doesn't. We now wrap the callbacks when calling the
parent functions.
Move the comment models to Backbone.js.

Previously, each comment implementation, though similar in
functionality, had lots of duplicate code.

Now there's a BaseComment model that takes care of all core comment
functionality, and subclasses that implement the support for the
specialized attributes they care about.

These objects validate their data when setting and before sending to the
server, to help us catch otherwise non-obvious problems. This is a
pattern I hope to make use of going forward, so that we can provide more
clear errors when we hit bugs.

All the other commenting code (blocks, dialogs) that deal with the
Comment objects had to be updated to make use of the newer-style
properties and events.

Unit tests were added to test the various bits of functionality.
Rewrite the CommentReply objects to be based on Backbone.js.

The new objects perform the same way the old ones did, but share much of
the code and make use of the BaseResource model.

There's a BaseCommentReply that does all the actual work, and subclasses
for diffs, file attachments, and screenshots. All the actual logic is
common, and the subclasses only provide the 'rspNamespace' key used to
parse the payload from the server.

Unit tests were added to cover the base serialization/deserialization
and validation.