More intelligent check that i18n files are up to date

Checking the file timestamp is no use because on CI the file timestamps
reflect the date when the files were checked out. There can be random 1
second differences so that this test would fail intermittently.

Now we check heirarchically that all keys present in the english locale
file are present in all other files.

We skip the language_names key because we don't translate every language
name into every locale.

Murray pointed out that some languages might not have the 'one' plural
form, so this test would always fail for such languages but we don't
currently have any such language, so I think it's ok.