moment.js uses a different naming conventions for locale files.
E.g. "zh-zn" instead of "zh_ZN" and "nb" instead of "nb_NO"
This change allows us to use the locale files without renaming which
makes future upgrades of moment.js a lot easier.
This patch sets I18n.defaultLocale in the Discourse.start() script block (it
was formerly always 'en') to SiteSetting.default_locale, and patches
translate() to perform fallback to defaultLocale followed by english.
Additionally, when enable_verbose_localization() is called, no fallbacks will
be performed.
It also memoizes the file loading operations in JsLocaleHelper and strips out
translations from the fallbacks that are also present in a prefered language,
to minimize file size.
moved moment.js into localization file (we need to localize it)
added helpers for date formatting use, moment().shortDate() moment().longDate() moment().shortDateNoYear()
Fix "undefined method `end_with?' for 1:Fixnum" when field name in YML file is not quoted number like:
```
user_action_groups:
1: "Likes Given"
2: "Likes Received"
```
(yamllint.com validates such file as valid YML file)