langWhitelist feature + fixing cookie issue

Some notes:
* Changed cookie behavior: Don't set cookies until after `toLanguages` has a chance to clean up the list (don't set cookie for invalid language)
* **Tests should not rely on a global object that persists across tests.**  Setting `langWhitelist` in one `describe` block should not cause tests to break in the next block.  I discovered this by changing the `i18next` config in some tests -- it broke many subsequent tests 'til I added an `afterEach` block.  Generally speaking: one test should not break another test.
* Committing all the compiled versions makes for a very long, cluttered pull request.  Sorry about that, nothing to be done for it from what I can tell.

/cc @darcyparker