Move i18n code from vibe.web.web to vibe.web.i18n and add enforcement of existing translation keys.