Add new management commands for siteconfig.

This adds some useful management commands for listing the current
site configuration, setting an existing key, or displaying the value of
a key. It should help when correcting configuration or debugging a
configuration problem.

The new commands are:

    * list-siteconfig
    * get-siteconfig
    * set-siteconfig
Fix extensions' config/ and db/ admim links with custom SITE_ROOTs.

In the case of custom SITE_ROOTs, the calculation of the extensions'
'db/' and 'config/' seem to use the reverse function for extension_list
method and then append it to the DynamicUrlResolvers' add_patterns
method. This adds an additional SITE_ROOT pattern as
reverse(extension_list) itself returns the path with the SITE_ROOT. So,
instead of the url for SITE_ROOT='/reviews/' being

reviews/admin/extensions/rbcustomreports.extension.CustomReportsExtension/config/
it turns out to be
reviews/reviews/admin/extensions/rbcustomreports.extension.CustomReportsExtension/config/

Fixed this by lstrip-ing the SITE_ROOT after getting a reverse function
so that dynamic url resolver adds it properly. This should work for
SITE_ROOT='/' or custom SITE_ROOTs.

Tested with SITE_ROOT='/' and SITE_ROOT='/reviews/', installed an
extension and testing the "Configure" link.

Reviewed at http://reviews.reviewboard.org/r/3874/
Get the NEWS update going in advance for the next release.
Fixes potential XSS at any page containing grid.

Every site, containing datagrids, can be hacked, using simple XSS, leading to
cookies leak.

To reproduce the problem, go to any site, wich uses djblets.datagrid. For
example, open http://demo.reviewboard.org/r/ Now add
?111'%3balert(document.cookie)//222=1 to the end of the URL and load that page.
That is the way, how a cookie thief will prepare the URL for his victim.
Then click to any table's header and you'll see an alert box with all your
cookies.

Reviewed at http://reviews.reviewboard.org/r/3658/
Show traceback if there was error during datagrid rendering.

Sometimes errors occur in the field rendering code, and in that case the
datagrid renders to an empty html. This patch allows to see a traceback of the
error instead. during datagrid rendering.
Fix CounterField initialization

CounterField's _reinit method was returning back control if the pk of the model
wasnt setup yet. This caused any of the "initializers" to not fire for the very
first time. Modified the logic so that control returns back if the model's pk is
None and there are no initializers defined. The earlier fix
(https://github.com/djblets/djblets/commit/5f38334fabfd282232908ef80b28cd1889d0871c#djblets/util/fields.py)
was setting the value to 0 if the pk wasnt available at the time. I've modified
the logic so that the method _reinit returns back immediately (without
processing the counter value) only if the pk is none and there are no
initializers defined. For the case of LocalSiteProfiles table, there are
initializers defined for all CounterFields, so they would be initialized the
first time the object is created.

With this fix, there is still a problem in calculating counts on the
LocalSiteProfiles for starred_public_request_counts. This is fixed in review
request #3842 (http://reviews.reviewboard.org/r/3842/)

Testing done:
Manual testing with regular and creating local sites and ensured that the first
time was seeing counts rather than None. Ran all reviewboard tests.

Fixes part of bug 2873.
Reviewed at http://reviews.reviewboard.org/r/3841/
Release Djblets 0.6.28.
Actually release now.
Bump to 0.6.29 dev.
Merge branch 'release-0.6.x'
Fix extension support when there is no settings.SITE_ROOT.

This was a regression introduced in this release. settings.SITE_ROOT is
not a requirement in the extensions code, and isn't available in tests,
so the code is now conditional on its existence.
Require Django 1.4.5 as a minimum version.

Django 1.4.5 is the latest security release. It's now our minimum
version. We also are, for now, disabling compatibility with 1.5, until
we can be sure it works.
Release Djblets 0.6.11.
Bump to 0.7.12 dev.
Factor out saving a PIL Image to django storage.

Both the thumbnail and crop template tags do the same thing for taking a PIL
Image and saving it to a (potentially remote) storage. In addition, I need this
functionality in $SECRET_PROJECT, so I've factored it out into its own method.