AU: Ensure update_engine_client get proxy retries are spaced out in time.

Hopefully, this will reduce test flakyness. It seems that last time the test
failed all 4 tries happened within a one-second timeframe.

Also, fix GError object memory leaks throughout the code.

BUG=chromium-os:21351
TEST=unit tests, tested on VM

Change-Id: If0bc5d5767d12f3396d0fcb46f3e04ed6d7dfd5c
Reviewed-on: http://gerrit.chromium.org/gerrit/8862
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/filesystem_copier_action.cc b/filesystem_copier_action.cc
index 364922b..340dd1d 100644
--- a/filesystem_copier_action.cc
+++ b/filesystem_copier_action.cc
@@ -157,7 +157,7 @@
 
   ssize_t bytes_read = g_input_stream_read_finish(src_stream_, res, &error);
   if (bytes_read < 0) {
-    LOG(ERROR) << "Read failed: " << utils::GetGErrorMessage(error);
+    LOG(ERROR) << "Read failed: " << utils::GetAndFreeGError(&error);
     failed_ = true;
     buffer_state_[index] = kBufferStateEmpty;
   } else if (bytes_read == 0) {
@@ -207,7 +207,7 @@
                                                        &error);
   if (bytes_written < static_cast<ssize_t>(buffer_valid_size_[index])) {
     if (bytes_written < 0) {
-      LOG(ERROR) << "Write failed: " << utils::GetGErrorMessage(error);
+      LOG(ERROR) << "Write failed: " << utils::GetAndFreeGError(&error);
     } else {
       LOG(ERROR) << "Write was short: wrote " << bytes_written
                  << " but expected to write " << buffer_valid_size_[index];