Improve language detection

This slightly changes the semantics and thus in a technical (SemVer) sense should be major release, but I'd argue that the old code is broken for ignoring e.g. a cookie with a whitelisted language because a URL parameter contains a language that is not whitelisted and thus this is simply a minor change (for looking at navigator.languages).

Not sure how to write tests for this with the current code structure. But I'd be happy to talk to you at some point about v2 and possible contributions both to code and tests.

Let me know if you want a PR with one single commit squashed from the 3 below or if you only want part of the changes.