[bug 927888] Add initial Gengo bits

This adds some basic bits so that we can make sure we've got Gengo things
configured correctly.
[bug 1003288] Add user_agent field to API
[bug 1003288] Add user-agent to FxOS form
[bug 991291] Fix css files

We had bits of css in a bunch of places it shouldn't have been. This
moves things around so they're easier to find since they're in places
related to the things that use them.
Fix more css/js issues

* moves fxos_feedback files out of the mobile/ directories
* nixes the mobile thanks which wasn't being updated and was out of date
* copies vendor_prefix.less to feedback/static/css/lib so we can use it
  there since jingo-minify runs in two different modes: like jekyll and
  hyde
* copies base/static/css/mobile/base.less to
  feedback/static/css/feedback_base.less since they're really two
  different things and separating them makes it way easier to restyle
  feedback forms without touching random parts of the site much like
  it's nice to get a footrub without also getting a lobotomy
[bug 975140] Add source and campaign to api
[bug 971369] Automated Gengo machine translation

* adds automated Gengo machine translator
* adds Gengo API wrapper
* adds tests
* adds some statsd calls so we can sort of see what's going on

The tests are a little goofy since they're very mocked so as to not
require public and private keys to run.

This infrastructure doesn't work at all unless you have working public
and private keys from Gengo. If you don't, then when it goes to auto
translate, it'll throw a GengoConfigurationError.

This is a first pass. If we can't guess the language of the text, then
we don't do anything with it. Further, if there's an error with machine
translation, we don't do anything more with it.
[bug 971369] Add translated description to response view
[bug 971369] Fix gengo admin view

This tweaks the gengo admin view so that it shows the products that are
enabled for Gengo machine translation.
[bug 971369] Add spot translation

* adds ability to translate a specific response from the response view
* reworks the gengo infrastructure so that it knows about supported
  langauges and handles edge cases like when the guesser guesses an
  unsupported language

Note: The spot translation view is hard-coded to use gengo_machine
translator and it also doesn't return any messages which sucks from
a UX point of view. It's here as a prototype, hence the big note.
[bug 971369] Make code better

* make GENGO_LANGUAGE_CACHE a tuple value rather than a list so it's not
  mutable
* tweak the "use an existing translation if we have one" code so that
  it's a little more efficient and has a statsd call so we can monitor
  it
[bug 978770] FxOS form no longer requires Firefox

This changes the FxOS form so that it doesn't require Firefox. You can
now use it (and test) with other browsers.
[bug 1016339] Change class args to class paths

This switches class arguments to class paths where they get serialized
for celery tasks and tossed in the queue. This should reduce the range
of possible problems we have creating and executing tasks in regards to
deployments that carry changes to the classes involved.
Add note to esreindex command about criticalmass
Show message when there are no matches
[bug 853582] Add statsd ping for ES errors
Fix esreindex so it doesn't hose refresh interval

If you killed esreindex command while it was working, it wouldn't set
the refresh interval back which causes all kinds of problems.

This fixes that by throwing that whole thing in a try/finally and
setting it back at the end regardless of what happened.
Remove vendor-fixing from deploy script

A while back, we switched from vendor/ as a git submodule to vendor/ as
a directory with a bunch of git submodules. To do that "cleanly" we had
to do a "destroy all the things with fire" rm -rf thing in the deploy
script. We don't need that anymore.

Further, removing that, should speed up deployments.
[bug 1014989] Add supported languages to gengo admin

* add list of Gengo support languages to the gengo admin along with
  which locale the language covers
* add list of locales we support in production that probably aren't
  covered by a Gengo supported language
Give "no messages" p an id for easier testing