* Add transifex node package to support syncing scripts
* Add scripts to push source `en.json` to Transifex and download translations to generate `scratch_msgs.js`
* Adds a test to ensure that changes to `msg/messages.js` have been reflected in the source and generated `scratch_msgs.js`
* gets the list of supported languages from scratch-l10n
From @AnmAtAnm: To avoid renames with Closure advanced compilation, prefer Blockly.Msg['PROCEDURE_DEFAULT_NAME'], unless you're including translation in your compilation sources.
Also resync translations to fix conflicts.
* removed all the generated files (<locale>.json, <locale>.js) except for ‘en’ versions and added them to git ignore.
* updated cleanup.sh to use our messages.
* added validation check to fail if any translations include newlines
* skip generating js files other than ‘en’ as we don’t use them
* Revised messages.js to use _single_ quoted strings instead of double (consistent with Blockly - if we need to import more strings), and switch the validations to check for single not double quotes.
* additional small changes for simplicity and ergonomics
Not handling category menu at this time as it’s managed differently in scratch-gui.
* pulled locales from transifex for languages that are mostly completely translated
* added option to switch language in playground.
* added missing category labels to `messages.js`