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
Fix Minor Component documentation regression

Change-Id: Iae34c6363d3312746d9efff18fb3891d2746723b
Update Companion Version Number (2.15ai2)

Change-Id: I62d242b6662326ab1a0f872e220f9c64769a3789
Add 2.15ai2 as an acceptable companion version

Change-Id: I106a6a4664701a268c6972e45ad63fd4b405d70d
Merge branch 'master' into localserver