Make dashboard column selector sort on detailed_label.

The dashboard column selector was sorting based on the label field which is
empty for many columns and different from the labels shown in the selector for
many others. The result of this was that the list of available columns showed
up in a seemingly random order.

Given that some columns (like the check-box column) include HTML in their
detailed_label, I've split this into two different parameters to __init__:
detailed_label, and detailed_label_html. We sort based on the first, and
display the second.

This requires some changes in Review Board to have everything pass in the data
to __init__ correctly.

Testing done:
Looked at the column selector and saw that everything was in alphabetical
order, even when the column included HTML or other entities at the beginning of
the text.

Fixes bug 3260.

Reviewed at https://reviews.reviewboard.org/r/5537/
Make it easy to get to an extension instance from a class.

It's pretty common for extension code to try to get the instance of the
extension from places where the instance isn't passed. The common
pattern is to import the extension class, the extension manager, and to
do a fetch. While that works, it's annoying.

Since an extension can only be instantiated once, it's pretty safe to
store a handle to the instance on the class. Now,
ExtensionSubclass.instance will point to the instance when the extension
is enabled.

Extensions may still need to deal with circular imports to get the class
(depending on where it's calling this from), but that's not any
different from before, and it's much nicer than dealing with the
extension manager.
Add a `settings` attribute in SettingsForm.

SettingsForm is a specialization of SiteSettingsForm, which provides
a `siteconfig` attribute. This is kind of misleading to use, though, so
instead, we'll provide `settings`, which is the same thing but with a
better, more accurate name.