AU: Many minor cleanup changes

postinstall: Run postinst twice, once for pre-commit (ie, before we
mark the install partition bootable in the partition table), and
post-commit (for after we do). This behavior is needed for specific
types of firmware update.

download action: flush caches, as we found was necessary in
memento_updater.sh

omaha request prep action: update the names of keys we look for in
lsb-release, also get the AU server url from a file, rather than
hard-code it.

set bootable flag action: GPT support.

also, some misc utility functions.

BUG=None
TEST=attached unittests

Review URL: http://codereview.chromium.org/1881001
diff --git a/omaha_request_prep_action.h b/omaha_request_prep_action.h
index cb82a9f..d6030f5 100644
--- a/omaha_request_prep_action.h
+++ b/omaha_request_prep_action.h
@@ -54,7 +54,8 @@
   // Fetches the value for a given key from
   // /mnt/stateful_partition/etc/lsb-release if possible. Failing that,
   // it looks for the key in /etc/lsb-release .
-  std::string GetLsbValue(const std::string& key) const;
+  std::string GetLsbValue(const std::string& key,
+                          const std::string& default_value) const;
 
   // Gets the machine type (e.g. "i686")
   std::string GetMachineType() const;