Update Companion Version (2.11ai2, Version Code 212).

Change-Id: I1dba7a771a15907dde19d94165c1ab17fdd53b31
BuildServer: pre-dex the runtime libraries

Change-Id: If5b942939e55edd106978ee8a08699d91eb7b1df
Fix issue #668 by adding red error triangles to duplicate component
event handlers.

This version uses ":" rather than "_" as an internal separator
character to defend against problems involving names with underscores.

It also abstracts over error strings (for internationalization)
in blocklyeditor/src/warningHandler.js.

This version abandons the earlier notion of special treatment of
singleton components = components (like AccelerometerSensor) for
which there can be conceptually only one instance. In this version,
all component event handlers are treated the same way.

Care was taken to avoid quadratic-time determination of duplicates
that was a problem in an earlier experimental solution to this problem
and was unacceptable for screens with large numbers of component event
handlers. In this new submission, duplicates event handlers are found
in a process that is linear in the number of component event handler
blocks, and each such block runs a constant-time error check to add
(or remove) the red error triangle.

Change-Id: Id7b0a69a4faf9028b5f534de515201d5a680ad2a
Revisit issue 545: improved project menu option names

* Start new project" => "Start new project ..."
* "Import project to App Inventor server" => "Import project (.aia) from my computer ..."
* "Export project to local computer" => "Export project (.aia) to my computer"
* "App ( save to my computer )" => "App ( save .apk to my computer )"
* "App ( provide QR code )" => "App ( provide QR code for .apk )"

Change-Id: I9e2c32fe3c844762d71ab8dd4c932230c49dcdb7
Minor Wording Change.

Change-Id: I656a2c09346fb3c6a6b090e9137c46e4e3e89faa
Add Support for Google Cloud Storage (GCS)

Add Support for Google Cloud Storage (GCS). This support is off by
default because it requires some setup in GCS before a given instance
will work. To use this code you should set “use.gcs” to “true” in
appengine-web.xml. You should then set “gcs.bucket” to the name of the
GCS bucket where assets and large block files will be stored. Note:
You must create this bucket on your own and ensure that the Google
Service Account for the instance has WRITE access to the bucket.

Once enabled old files in Blobstore will continue to reside in the
Blobstore, but new large files will be written to GCS.

Also note: With this change small (less then 50,000 bytes) blocks
files will be written to the Datastore instead of the Blobstore (or
GCS). This is true even if the “use.gcs” flags is “false”

More information is available at http://appinv.us/ai_gcs_setup

Change-Id: Iec75c50de925f2b99838fb43d45a98bce609a653
Move error checking to onMouseUp events instead of on all blockly workspace changes.

Change-Id: I530a6e34f196d3722d3a50b9555d6dc269943d7a
fix for Twitter API change. Only SSL traffic allowed

Change-Id: I76047e13852ba4112b324014b488b6c0a08358ed
fix for collapsed blocks swallowing other blocks

Change-Id: I71c996463e8dafbb76955ea08da4bca0a3385d9e