Ensure that Built APK files are valid

If we fail to fetch a file from the Google Cloud Store, we substitute
a zero length file. This change alters this behavior to cause a fatal
error if this happens during an attempt to build a project. This
ensures that zero length assets do not wind up in a built APK file.

Change-Id: I09f841f06dacb413adb49056c73b62f65cddcaa9
Add ability to shutdown the buildserver.

New requests will be rejected, but existing builds will run to
completion. Also updated the healthcheck function to only reply with
success if a shutdown is not pending. So any load balancer will know
to no longer send jobs at the server while it is shutting down.

Change-Id: I4a2224df99170deef08a780ab7328ebcebbb068b
Bugfix to GCS Retry Code

Make sure we break out of the retry loop when we succeed in finally
reading an object out.

Change-Id: I10e47c6bc3c81cd03880658191e01f3e149dfaa5
Update GCS and App Engine Libraries

Update GCS Library to version 0.4.3 and App Engine to 1.9.17
Update timeouts used with the GCS Library.

Change-Id: I818185e39d8207365339be8d1fd2789a1e9318d6
Modify the Buildserver shutdown system

Modify the buildserver shutdown system to accept a delay
parameter. This parameter, specified in seconds, defines a grace
period between now and the specified time in the future. During the
grace period the health check function will return “unhealthy” while
the buildserver itself will continue to accept new jobs. This more
gracefully handles the time period between then we declare that we
want to shutdown the buildserver and when the load balancer finally
decides that this buildserver is truly unhealthy (which requires
several polls) and takes it out of service. During this grace period
any jobs given to the buildserver by the load balancer will still be
honored.

Change-Id: Icf9f3f5cf7c958ee57ed774ab6a27457e6b347dc
Add the Deobsfucate Text block.

This block works like a text block. However the code it generates is
obsfucated so that the text string itself is obscured from view in a
packaged application. It is a good block to use to store an API key or
other information that is sensitive.

Note: This is not a perfect solution. A determined person can still
take a packaged file and extract the text string. However it takes
some effort.

Change-Id: I481e890b2230f69877b61a697743a921fb15fb83
Improve tooltip on obsfucate block.

Change-Id: Ib13ee3490e60c28b6a8a65167005820f5e6c18e8
Bug fix for git issue #160

Text Input Notifier component: Canceling a notifier input should hide
the keyboard.

Change-Id: Iefea7982b0b15391381a4b70d7b88ae5e74d45be
Updated deprecated calls to GWT CheckBox

Replacements are type-consistent drop-ins:
isChecked -> getValue
setChecked -> setValue

Change-Id: If727b574d181e95461bb6e270d5dc0ec879428ae
Designer property for "visible" now uses checkbox

Replaces pulldown that had text options.

Change-Id: I68a8a202dc24b5638defe9b7df2f3385a830e3c3
Fix for issue #194. Tooltip now updates when dropdown changes property in component property getter/setter.

Change-Id: I9a23fe93f5ba98b8a94964c37bf8e115ae0b9705
Added ProximitySensor component

Change-Id: Id51f4cab7cb817079583a5abee7342240a1b988c
Corrections on Spanish translation

Change-Id: Icc75361310163319c5c500c23971fd1e406db9bf