Add support for JavaScript extensions.

Extensions in Djblets can now define their JavaScript counterparts,
which, like the Python versions, can attach to hooks and augment
functionality. It is up to the consumer of Djblets to define hooks to
use.

This functionality requires Backbone.js and Underscore.js (or
compatible). These are not provided by Djblets.

The consumer must also call the init_js_extensions template tag at the
end of the body tag in all applicable templates, in order to initialize
extensions.
Allow a max number of newlines to be passed to {% condense %}.

The {% condense %} template tag is no longer hard-coded to 3 newlines.
It can be passed the number of newlines it should condense down to.