[WIP] Add language picker

This also contains the changes in #1912, so the diff should simplify a bit once that's merged.

Some commentary inline on the remaining rough spots.
Can you make a pull request so that I can probably review and merge them in mozilla repo if this patch can be use widely with other apps as well? :)