update_engine: Template specialized UpdateManager interface for mockability

This change is to create an interface that is for testing
|UpdateManager|. Currently the |UpdateMaanger| exists by having two main
member functions that are templatized allowing for a generic set of
policy methods to be passed in taking a abitrary set of arguments. The
downside of this design is the difficulty when testing such a class.

Next steps are to refactor |Policy| and |UpdateManager| to exist
together without the need for templatized member function within
|UpdateManager| as the whole set of policy methods that can be passed in
are already determined (UpdateCheckAllowed, UpdateCanBeApplied,
UpdateCanStart, UpdateDownloadAllowed, P2PEnabled, P2PEnabledChanged).
The issue is that these functions each take a different set of arguments
and can probably be combined into one generic set of arguments making
the |UpdateManager| much simpler to manage.

BUG=chromium:924165
TEST=unittests
TEST=FEATURES="test" emerge-${BOARD} update_engine

Change-Id: Ia8091495079f9324bccf5e717d5f26ea7ef24514
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 8b8e390..9421c19 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -53,10 +53,12 @@
 #include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_consumer/postinstall_runner_action.h"
 #include "update_engine/update_boot_flags_action.h"
+#include "update_engine/update_manager/mock_update_manager.h"
 
 using base::Time;
 using base::TimeDelta;
 using chromeos_update_manager::EvalStatus;
+using chromeos_update_manager::MockUpdateManager;
 using chromeos_update_manager::StagingSchedule;
 using chromeos_update_manager::UpdateCheckParams;
 using policy::DevicePolicy;
@@ -137,6 +139,7 @@
     fake_system_state_.set_connection_manager(&mock_connection_manager);
     fake_system_state_.set_update_attempter(&attempter_);
     fake_system_state_.set_dlcservice(&mock_dlcservice_);
+    fake_system_state_.set_update_manager(&mock_update_manager_);
     loop_.SetAsCurrent();
 
     certificate_checker_.Init();
@@ -222,6 +225,7 @@
   OpenSSLWrapper openssl_wrapper_;
   CertificateChecker certificate_checker_;
   MockDlcService mock_dlcservice_;
+  MockUpdateManager mock_update_manager_;
 
   NiceMock<MockActionProcessor>* processor_;
   NiceMock<MockPrefs>*