PolicyManager: Remove unnecessary Init() methods.

The PolicyManager::Init() method always return true as it can't
really fail. This patch removes it and simplifies the interface
on the FakePolicyManager to make it easier to use it on Policy
unit testing exposing the FakeState there.

BUG=chromium:358269
TEST=Build and unittests.

Change-Id: Ib27dd41a483b10f164810e18585a8e4b4cb92f5a
Reviewed-on: https://chromium-review.googlesource.com/196968
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/real_system_state.cc b/real_system_state.cc
index 9384228..7fca0ca 100644
--- a/real_system_state.cc
+++ b/real_system_state.cc
@@ -17,7 +17,6 @@
       connection_manager_(this),
       update_attempter_(this, &dbus_),
       request_params_(this),
-      policy_manager_(&clock_),
       system_rebooted_(false) {}
 
 bool RealSystemState::Initialize(bool enable_gpio) {
@@ -45,11 +44,15 @@
                                            kMaxP2PFilesToKeep));
 
   // Initialize the PolicyManager using the default State Factory.
-  if (!policy_manager_.Init(chromeos_policy_manager::DefaultStateFactory(
-      &policy_provider_, &dbus_, this))) {
+  chromeos_policy_manager::State* pm_state =
+      chromeos_policy_manager::DefaultStateFactory(
+          &policy_provider_, &dbus_, this);
+  if (!pm_state) {
     LOG(ERROR) << "Failed to initialize the policy manager.";
     return false;
   }
+  policy_manager_.reset(
+      new chromeos_policy_manager::PolicyManager(&clock_, pm_state));
 
   if (!payload_state_.Initialize(this)) {
     LOG(ERROR) << "Failed to initialize the payload state object.";