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
Fix to initial lag in drag in large projects and also issue 667.

Removing the onchange handler in lexical_variable_get and lexical_variable_set
eliminates the remaining delay in starting a block drag in large projects.
It also fixes issue 667 in which copying variable setters and getters out
of scope changed the current names to the empty string. Now the names remain,
but the getter/setter block has a red error triangle.

This does *not* improve many other nasty lags involving large projects:
* loading large projects is numbingly slow
* mouse-up on a moved block is very slow because of an unexpectedly large
  number of render calls
* displaying a drop-down list for event-handler component or variable
  is unexpectedly slow.

Change-Id: If06a3011d5b31fc5308fc33e99c2a0adb2fdb160
Add documentation on barcode scanner to reference docs

Change-Id: Iff34a60853724dc43b71298fa6b628278dc404ca
Update Splash Screen in Companion

Change-Id: I7bdf1ec8069e6378c55b1b2a37b903f36b108f48
Fix a NPF in the NearField Component.

Fix a NPF reported via Acra and the Play Store.

Change-Id: Icbac7eb9e71880b1624857c45ee1ad514a39ed4c
Make half-created files empty.

File creation is a two-step process, first the file is created and
then it is populated with data. If the second step fails, the file is
left in an inconsistent state which damages the containing
project. This change causes half-created files to return as empty.

Change-Id: I09147e8eb389b249dde57862d07063434df4f0a3
Update Companion Version to 2.12ai2zx1

Change-Id: Ic0a1e0914eafe10788c96ce8d6d908f91fa6a781
Remove Obsolete AI1 Code

Completely remove the blockslib and blockseditor source from the
source tree. They are AI1 specific and no longer used.

Change-Id: I95de2fd9523d22c468ddd202d754590323ed609a
Don’t Save Corrupted Blocks Files.

Fix Trac #572, make sure that corrupted blocks files are not
over-written.

Change-Id: I4fddf17eae6229c4d1a7c97154af7a314a526215
Remove IE Support.

Remove IE from the GWT compilation list as well as indicate that it is
not supported in “index.html.” People attempting to use IE will now
get a message listing the supported browsers. We can undo this when we
have IE support working.

Change-Id: Ib2728c7a180b8ac3e409370319032d013d5ed8c8
Fixed notifier documentation
Made notifier closekeyboard on text entry
Make cancelable default to TRUE for Notifier.ShowMessage dialog and ShowChooseDialog
Fix notifier Web documentation

Change-Id: I92d27bccfd544a8477c858ac4b781d8b2dfea157
Have the “Reset Connection” Menu always available.

Have the “Reset Connection” Menu always available, even when we
believe there is no connection. Selecting “Reset Connection” will kill
both any running emulator and adb, so it is useful to help reset the
state of things when the user isn’t quite sure what state they are in.

Change-Id: I7a8f099f792eb2090de1c594c7754fecaa2a4df7
Added an AboutScreen Property

Added an AboutScreen property for info that will be shown in the
system menu. Created a new property editor, TextArea, for long texts
Clarified the Notifier documentation for ShowChooseDialog and
ShowMessageDialog

Change-Id: I08efe7db25d715e1728fcdca9cae5795192c0214
Added more <users-features> to the Companion

This should result in the Google Play Store showing the Companion to
Tablet users.

Change-Id: I8eb2db1786adce86d61885c39cb881013f3dc419
Properly Handle Reading Larger Files from GCS

The Google Documentation shows reading GCS files with one read() call
to an open file channel. However on App Engine the read() call may
return fewer bytes then the file contains in which case you have to
call it multiple times until all data is read. Assuming this change
fixes the problem with have with files larger then 8MB, we will submit
a bug report for the GCS/App Engine documentation.

Change-Id: I58d982d0f36932121d5ccb91d0400aabb55c1536
Enhanced Companion: Can now scan and load APK files.

When you package an app and generate a QR Code, you can now use the
Companion to scan that code and it will call the package
installer. This means that you no longer need an external bar code
scanner to install packaged files from App Inventor. The Companion
provides you all that you need!

Also fixed #520. If you start the Companion when you don’t have a WiFi
connection, you will receive an Error Dialog box after which the
Companion will exit. No WiFi connection is needed for a USB
connection.

Change-Id: Ia0d96b1a7e49fd6e3fc5801ad86c9124adbe0a71
Make the font for the Companion Connect code larger

Change-Id: I83d1d211b0cfebdfa8f26ca9f912dd9e4fe5cadb