AU: OmahaRequestAction: allow to be skipped.

This CL changes OmahaRequestAction to take a request to skip its
action when it's run. This will be useful in a future CL, where we'll
want to schedule an OmahaRequestAction to run, but then in some cases
prevent it from actually doing so.

This also changes MockHttpFetcher to be able, if properly configured,
to fail it it's used. This is used in the test to make sure that a
skipped OmahaRequestAction does no HTTP traffic.

BUG=chromium-os:13813
TEST=unittests

Review URL: http://codereview.chromium.org/6677146

Change-Id: Ic3e4099d221c4d7d0bca65b1a0064c33dca4edb5
diff --git a/omaha_request_action.cc b/omaha_request_action.cc
index 4c77ce0..a02387e 100644
--- a/omaha_request_action.cc
+++ b/omaha_request_action.cc
@@ -179,7 +179,8 @@
       event_(event),
       http_fetcher_(http_fetcher),
       ping_active_days_(0),
-      ping_roll_call_days_(0) {}
+      ping_roll_call_days_(0),
+      should_skip_(false) {}
 
 OmahaRequestAction::~OmahaRequestAction() {}
 
@@ -216,6 +217,10 @@
 }
 
 void OmahaRequestAction::PerformAction() {
+  if (should_skip_) {
+    processor_->ActionComplete(this, kActionCodeSuccess);
+    return;
+  }
   http_fetcher_->set_delegate(this);
   InitPingDays();
   string request_post(FormatRequest(event_.get(),