[bug 770296] Show 7 day data for unhelpful KB docs
[bug 752258] Show time on KB revision history
Nix spaces in ids in admin/index

Note:

    This only affects admin/index and it's really benign, so I'm just
    pushing it through skipping the workflow.
Fix l10n comment

It was wrong. Now it's less wrong.
Fix python26 references

We no longer need that python26 goofy stuff since we ditched Sphinx.
[Bug 740645] Add permissions for redirects.
Add myself to CONTRIBUTORS.
[fix bug 772998] Don't simply concat JS strings.

- Add a k.safeString function similar to Python's markupsafe.escape.
- Add a k.safeInterpolate function that uses k.safeString.
- Use interpolation instead of concatenation in user autocomplete.
Bug 773083 - Windows 8 detected as Windows NT 4 in the support forum
Make sure unhelpful surveys don't overflow the DB

* Add tests that check for this condition.
* Truncate the incoming surveys when they are doing long, by reducing
  the survey field.
* Add a hard limit and a character counter to the user interface for
  unhelpful surveys.
Fix anonymization script

Stop checking foreign keys when truncating tables to prevent foreign key constraint errors on MySQL >= 5.5
[bug 768218] Add product models
Fix issues from review

* added visible field
* fixed slug field and made it prepopulated
* added list_editable fields
* changed image location to STATIC
Make Firefox 14 the default.
[bug 765217] Default comment for new KB doc
Docs updates

* Splits the docs into three sections---trying to reduce the "omg!
  there are a million sections!" overwhelming feeling
* Moves the test-related things to the tests chapter so they're all
  in one place
* Turned "coding" into "conventions"---that's what it really is.
* Fleshed out the git commit message conventions---it keeps coming up
  and we pointed to a guide which pointed to a guide and the links
  were buried in both places.
Remove dead code

This nixes a bunch of dead and work-around code from the Sphinx days.

* ES uses "_score" instead of "@rank" internally
* we no longer use object_ids
* we no longer need the group_by no-op

I also added a note about query_fields--we're only using that in the
bucketed search view and suggestions. We should nix that, too.
[bug 774761] Use unicode when truncating JSON.

Before, when JSON was truncated that contained unicode, the unicode
would be represented as escape characters when calculating how much to
truncate. The string to be truncating though would still be represented
as a unicode string, so

Example: The dictionary {'pi': 'π'} would be serialized as '{"pi":
"\u03c0"}', which 16 characters, instead of 11 if it were represented as
unicode. The truncation happens on the original string, which has not
been encoded as escape characters. If the limit is 12 characters, then
the truncation goal would be to chop of 4 characters, which are not
available (since it is only a single unicode character), causing an
error to be thrown.

This commit add the parameter ``ensure_ascii`` to turn this behavior on
or off. It is off by default.
Merge branch 'bug-774761'
[Bug 760744] Update bleach and py-wikimarkup.

Upgrade Bleach to v1.1.4 (latest stable) and py-wikimarkup to a
compatible version.