[bug 947278] Switch memcached key generator to use md5

This reworks the memcached key generator to use md5 to hash the
description and then attach that to the ip address rather than the other
thing I was doing.

Hopefully this nixes the problems I'm seeing in production with keys
that exceed memcached's 250 character limit, though I'm still not
totally clear on why that's happening.
[bug 931105] Truncate description on dashboard
[bug 948925] Fix bigram analysis

This explicitly states to use the snowball analyzer for analyzing
descriptions for bigrams.
[bug 948446] Show email addresses to analyzers
[bug 948998] Fix bigram links with no start dates

This hard codes the start date for bigram links to the dashboard to
2013-01-01 which is a hack to force the dashboard to show all of the
responses with this bigram.
[bug 946736] Fix date links on responses in dashboard
[bug 949000] Switch product list to dropdown

The occurrences report now uses a dropdown list of all available
products.
[bug 754615] Remove response urls from feeds

This needs to be redone and requires additional work to be done, too.
For now, we're removing it from the feeds until that work is done. Refer
to the bug for details.
[bug 931189] Add character counter to feedback form

This (re)adds the character counter to the normal feedback form. This
doesn't prevent users from submitting the form--it just indicates how
many characters are acceptable, when the user is getting close to the
limit and when the user is over the limit.
[bug 931189] Add character counter to mobile feedback form

This adds a character counter to the mobile feedback form. This doesn't
prevent users from submitting the form--it just indicates how many
characters are acceptable, when the user is getting close to the limit
and when the user is over the limit.

Also, I moved part of the privacy text upwards so it's right under the
description. This is not a change that requires l10n work. It is a
change that the Privacy folks suggested in bug 934721 for the other
feedback form.
[bug 931189] Add character counter to Firefox OS feedback form

Adds a character counter to the Firefox OS feedback form. This doesn't
prevent users from submitting the form--it just indicates how many
characters are acceptable, when the user is getting close to the limit
and when the user is over the limit.
[bug 963199] Nix mobile dashboard

This nixes the decorator that sends mobile browser users to the mobile
dashboard template which is something like "Under construction". Instead
they'll now get the desktop dashboard template.
[bug 857056] Rework feedback urls

This reworks feedback urls so that we can take the locale, product,
version and channel from the url and fallback to inferring it from the
user agent.

This allows products to use product-specific urls which gives us the
possibility of capturing the channel and allows us to more correctly
distinguish Firefox, Firefox for Android, Firefox OS and Firefox Metro
(or whatever the name for that will be).

If an unknown product is specified in the url, then the "unknown product"
page will show.

This also adds a bunch of FIXME comments for things that should get fixed
in future commits some of which are hard-coded right now. Why in the
future? Becuase they're problems that have other pieces and should be
thought through before committing to code and creating new
backwards-compatability issues.
If no product, then ignore everything else

Also, this moves PRODUCT_MAP to config.
Fix response template to show channel correctly
Tweak smart_datetime

Rewrites smart_datetime as smart_date (that's all we were using)
to use Django's built-in parse_date and also to nix the fmt argument
which we didn't use.

This also handles dates as an argument--not that we do that, but it
lets us nix that note.
Add product and version to dashboard
Move product, version and channel out of secure section

The product, version and channel aren't PII, so it should be fine to
show them. Given that I just changed the dashboard to show the product
and version, it seemed prudent to fix it here, too.
[bug 965475] Add l10n_completion script

This figures out the percent translated of strings broken down by
locales and by app.
Add cron-related stuff to deploy