Internationalized version of App Inventor 2

Change-Id: Ia212bf2692785d018c5272fcefe8204319ea7c35
Changed all traditional Chinese to simplified

Change-Id: I4c20b19fc154fe873735f474903cfb066652bf57
Modified legal identifiers to support i8n. Now allows Chinese identifiers.

Change-Id: Iaf9c17d3cc7fa61bc003251a6be3e84913392f9b
Internationalize replmgr.js. Only English messages are in this commit.

Change-Id: I75bd3b8a1facb0388385f101a118173ae147d598
property, methods, events, parameters maps all referring to OdeMessages. No longer loading maps at beginning

Change-Id: I2a38236f995936a95e17e8609c19014169915d4b
internationalized type blocks

Change-Id: Ieac832c9813f11f6c82d4bc470de0976644db082
Changed locale from zh_TW to zh_CN
Cleaned up BlocksEditor msg directory

Change-Id: Idb011f588f285bd5813c34d2ce96d9cb80c63d13
localized ode.java dialogs

Change-Id: I51ce795925ee542efe5e9a9d92e2a116e14d35cb
Added language menu to toptoolbar

Change-Id: I2aa2e1ab5b15a58adf85561a9e9eaa6a2b507ddc
Event parameter renaming in internationalization

Patch Set 2 notes:
* In language_switch.js, commented out console.log calls that were
  preventing code generation tests from passing.
* In lexical-variables.js:
  + In local_variable_statement.renameFree, changed buggy nondestructive
    bodyFreeVars.difference(localNameSet) to correct destructive
    bodyFreeVars.subtract(localNameSet).
  + In lexical_variable_set, fixed incorrect typeblock

Patch Set 1 notes:

This commit makes several substantial additions/changes to the
ai2inter branch, but almost all should be merged into master as well.

* The renaming code in blocklyeditor/src/field_lexical_variable.js has
  been substantially cleaned up and generalized. When renaming a
  parameter from and old name to a new name would naively lead to
  variable capture involving the new name, there is now a choice
  between (Strategy1) changing the new name to avoid capture and
  (Strategy2) renaming internally declared variables to avoid capture
  of the new name. The latter strategy is essential in cases like
  renaming an event parameter, where there is no option of changing
  the new name.

* Strategy2 is implemented by methods renameBound, renameFree, and
  freeVariables defined on blocks involving variable declarations or
  references. These are implemented in terms of two new kinds of
  objects: NameSet (defined in blocklyeditor/src/nameSet.js) and
  Substitution (defined in blocklyeditor/src/substitution.js)

* This code correctly handles the renaming of event parameters when
  switching languages in internationalization. So if a Canvas.Dragged
  block is changed to Chinese, not only will the declaration of
  "startX" change to the Chinese equivalent, but all references to
  "startX" will change appropriately as well. It even correctly
  handles the case where a local English variable "startX" is
  introduced between the Chinese declaration and uses of "startX".

  All of this magic requires (1) XML mutation attributes "eventparam"
  for getters and setters of event parameters and (2) a special case
  for blocks of type component_event in Blockly.Xml.domToBlock that
  does the appropriate renaming. sh

* In various blocks definition, the category field was changed from
  abstract categories like Blockly.Msg.LANG_CATEGORY_LOGIC to concrete
  ones like 'Logic'. The abstract versions DO NOT WORK in the current
  system.

Change-Id: Iee8f291181cf164e17d32b280f7eaaef6ea77f43
These "localized" operations are used in the internationalization code
They are provided by the browser in the actual system, but
are not present in phantomJS.  So define mock versions to be used by the tests.

Change-Id: I5f68ed5cfa26d497b4628ca1869460d3e832229c
Internationalization for AI2

Added Internationalization support
Added/Modified renaming of procedures so they work with internationalization

Note: Commented out language menu until we have a clean Chinese translation.

Change-Id: I951fe7ac29c58153f7d98b8c7f9abc92bfda946d
Merge branch 'ai2inter' into master

Change-Id: I2eae3869b64f80d941eb7d0abaaf985a7c255880