Provide nicer access to siteconfig settings in templates.

Templates accessed siteconfig settings through accessing
`siteconfig.settings.<name>`. However, this didn't handle default
values for the siteconfig.

There isn't a great way of implementing that for templates, so instead,
we have a wrapper that handles defaults, accessible through the
`siteconfig_settings` context variable. All templates should be updated
to use this instead.

The settings field is also no longer read-only in the admin UI, since
it's now safe these days to modify a JSONField within the admin UI form.

Reviewed at https://reviews.reviewboard.org/r/5693/
Serialize with the correct resource using get_serializer_for_object.

The new get_serializer_for_object wasn't reliable enough, since it would
only work in certain circumstances. Any time the JSON encoder was used
to serialize part of a resource, it'd end up using the wrong resource to
serialize.

Now, when WebAPIResource serializes a payload, it passes itself as a
special parameter for use during serialization. This is used as a handle
for determining what to call get_serializer_for_object on.

With this, it should now be possible to always override serialization
for any object, reliably.

Reviewed at https://reviews.reviewboard.org/r/5695/
Add some presentation improvements for configforms.

This adds a new class used for the descriptions at the top of a config
form, used to provide decent spacing when using one or more paragraphs.

It also shows a spinner when the item indicates it's communicating with
the server, and hides it when it's finished communicating.

Reviewed at https://reviews.reviewboard.org/r/5696/
Add Djblets JS unit test bundles and fix configForms icons and tests.

Djblets now provides a djblets-js-tests bundle containing all JavaScript
unit tests. This currently consists only of the configForms tests.
Consumers can include this bundle along with their own tests bundles.

While integrating this, I found issues with the configForms tests. The
icon tests weren't passing, due to changes to how icons were
represented. I also noticed that we were still prefixing icon names with
"rb-icon-", which wasn't ideal. We now default to "djblets-icon", but
callers can override this by overriding iconBaseClassName.

Reviewed at https://reviews.reviewboard.org/r/5699/
Add TableView and TableItemView to configForms.

This adds a couple of useful views for rendering lists of items using
tables instead of standard lists.
Fixed get_url_params_except function to work with not ascii contain query

There are an error in urlencode if query contains non ascii strings.

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