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/update_check_action.cc b/update_check_action.cc
index b92e788..106400b 100644
--- a/update_check_action.cc
+++ b/update_check_action.cc
@@ -22,6 +22,8 @@
     "{87efface-864d-49a5-9bb3-4b050a7c227a}");
 const char* const UpdateCheckParams::kOsPlatform("Chrome OS");
 const char* const UpdateCheckParams::kOsVersion("Indy");
+const char* const UpdateCheckParams::kUpdateUrl(
+    "https://tools.google.com/service/update2");
 
 namespace {
 
@@ -105,7 +107,7 @@
   http_fetcher_->set_delegate(this);
   string request_post(FormatRequest(params_));
   http_fetcher_->SetPostData(request_post.data(), request_post.size());
-  http_fetcher_->BeginTransfer("https://tools.google.com/service/update2");
+  http_fetcher_->BeginTransfer(params_.update_url);
 }
 
 void UpdateCheckAction::TerminateProcessing() {