AU: Changes for deltas on traditional bios machines.

BUG=None
TEST=Attached unittests/tested on image

- Fix uninitialized variable err in action processor unittest

- Let Omaha dictate if an update is a delta or full update

- Bug fix in delta generator for differently-sized images

- More logging when applying delta updates

- Fix infinite loop in http fetcher unittest

- log each HTTP connection to know when a dropped connection is
  reestablished.

- Detect when speed goes below a threshold and reestablish HTTP
  connection (currently < 10bytes/sec for 90 contiguous seconds).

- Fix stack overflow in libcurl http fetcher.

- optimize out a lot of needless CPU usage in libcurl http fetcher
  (turns out adding a glib main loop source uses a lot of CPU).

- subprocess: pass PATH, log stdout/stderr

- postinstall runner: support for ext3 and ext4 target filesystems.

Review URL: http://codereview.chromium.org/2805027
diff --git a/postinstall_runner_action.cc b/postinstall_runner_action.cc
index e8f5cc2..281582a 100644
--- a/postinstall_runner_action.cc
+++ b/postinstall_runner_action.cc
@@ -24,11 +24,6 @@
   const string install_device = install_plan.install_path;
   ScopedActionCompleter completer(processor_, this);
   
-  utils::BootLoader boot_loader;
-  TEST_AND_RETURN(utils::GetBootloader(&boot_loader));
-
-  bool read_only = (boot_loader == utils::BootLoader_CHROME_FIRMWARE);
-
   // Make mountpoint
   string temp_dir;
   TEST_AND_RETURN(utils::MakeTempDirectory("/tmp/au_postint_mount.XXXXXX",
@@ -37,14 +32,22 @@
 
   {
     // Scope for the mount
-    unsigned long mountflags = read_only ? MS_RDONLY : 0;
+    unsigned long mountflags = MS_RDONLY;
 
     int rc = mount(install_device.c_str(),
                    temp_dir.c_str(),
-                   "ext3",
+                   "ext4",
                    mountflags,
                    NULL);
     if (rc < 0) {
+      LOG(INFO) << "Failed to mount install part as ext4. Trying ext3.";
+      rc = mount(install_device.c_str(),
+                 temp_dir.c_str(),
+                 "ext3",
+                 mountflags,
+                 NULL);
+    }
+    if (rc < 0) {
       LOG(ERROR) << "Unable to mount destination device " << install_device
                  << " onto " << temp_dir;
       return;