Fix the init_js_extensions call when not matched by a resolver.

It's possible for our base template to be invoked without having a URL
resolver match. For example, certain error pages.

We now skip pulling out the URL name and initializing the extensions if
we don't have a URL resolver match.
Add some documentation on using apply_to for static bundles.

This updates the Extensions docs to describe the new apply_to field for
static bundles, differentiating from "default" and manually including
bundles.
Changed JS extension support to be more flexible.

This replaces the old Extension.js_model_class attribute with a list
of JSExtension subclasses stored in Extension.js_extensions.

Each JSExtension subclass lists a JS model class. It also has an
apply_to field that works like those in bundles and TemplateHook. If not
provided, the extension will be initialized on all pages.

get_js_model_data has also moved to JSExtension, renamed to
get_model_data.

Extensions taking advantage of js_model_class in the Djblets 0.8 alphas
will need to be updated for this change.
Run unit tests from executable Python modules

When developing on a Linux VM inside a Windows host, all Python modules have
the executable flag on. Nose has work around for this when run on Windows
(https://github.com/nose-devs/nose/blob/master/nose/config.py#L26). In this
case, the Python intrepeter run inside the VM causing the work-around to fail.
This review request adds check for executable file permission and forces Nose
to run tests.

Testing Done: Unit tests pass.

Reviewed at https://reviews.reviewboard.org/r/5325/