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.cc b/update_attempter.cc
index b3cb3c3..8df8b61 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -163,7 +163,8 @@
       Bind(&UpdateAttempter::OnUpdateScheduled, base::Unretained(this));
   // We limit the async policy request to a reasonably short time, to avoid a
   // starvation due to a transient bug.
-  update_manager->AsyncPolicyRequest(callback, &Policy::UpdateCheckAllowed);
+  update_manager->AsyncPolicyRequestUpdateCheckAllowed(
+      callback, &Policy::UpdateCheckAllowed);
   waiting_for_scheduled_check_ = true;
   return true;
 }