Enable test mode updates.

* Uses the GPIO module to deduce whether a current update session needs
  to be treated as a controlled test, which allows a few relaxations.

* LibcurlHttpFetcher is extended to relax some of its security lock down
  provisions.

* Fix: a test mode flag remains persistent throughout an update attempt,
  so that it can be delegated to the various HttpFetcher instances used
  in the same attempt.

BUG=chromium-os:25397
TEST=Builds and unittests; automated test script works w/ servo
connected Alex

Change-Id: I8a29d1a21a0632912c10f01f69a26d9c659472fd
Reviewed-on: https://gerrit.chromium.org/gerrit/25128
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Ready: Gilad Arnold <garnold@chromium.org>
diff --git a/update_attempter.h b/update_attempter.h
index 77af499..1ab8352 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -80,7 +80,7 @@
                       const std::string& omaha_url,
                       bool obey_proxies,
                       bool interactive,
-                      bool is_test,
+                      bool is_test_mode,
                       bool is_user_initiated);
 
   // ActionProcessorDelegate methods:
@@ -335,6 +335,9 @@
   // A flag for indicating whether we are using a test server URL.
   bool is_using_test_url_;
 
+  // If true, will induce a test mode update attempt.
+  bool is_test_mode_;
+
   // A flag indicating whether a test update cycle was already attempted.
   bool is_test_update_attempted_;