Added “IgnoreSslError” property to the WebViewer

When set (default is not set) the WebViewer can use SSL to access web
pages with a self signed certificate. Setting it exposes you to a Man
in the Middle Attack, but on the other hand it also lets you access
pages with a self signed certificate. The security trade-off needs to
be made by the application designer.

Change-Id: I960628ebb1ea0c7c3839b8aad5170ed32fef7229
Bugfix: Properly handle zero length files in GCS code.

Change-Id: I3794f21456c9ceedea18f39f11ef278f061a6533
Modify GCS retry parameters, add more logging

Also add our own retry loop.

Change-Id: I767221df189cabb958504c51d7a04465a1ff23e5
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