PM: Add an update engine provider.

The UpdaterProvider exports variables for querying the status of an
update process and related settings. Includes a concrete implementation
(RealUpdaterProvider), which currently links directly with update engine
code and pulls information through the SystemState object.  Also
included is a fake implementation (FakeUpdaterProvider) for testing
purposes.

BUG=chromium:346914
TEST=Unit tests.

Change-Id: I6ed5b40f21e43537e78aebf4217d811e149f745b
Reviewed-on: https://chromium-review.googlesource.com/192232
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/fake_state.cc b/policy_manager/fake_state.cc
index 4f4c787..0f0b5f1 100644
--- a/policy_manager/fake_state.cc
+++ b/policy_manager/fake_state.cc
@@ -11,7 +11,8 @@
 FakeState::FakeState() : State(new FakeRandomProvider(),
                                new FakeShillProvider(),
                                new FakeSystemProvider(),
-                               new FakeTimeProvider()) {
+                               new FakeTimeProvider(),
+                               new FakeUpdaterProvider()) {
 }
 
 FakeState* FakeState::Construct() {
@@ -19,7 +20,8 @@
   if (!(fake_state->random_provider()->Init() &&
         fake_state->shill_provider()->Init() &&
         fake_state->system_provider()->Init() &&
-        fake_state->time_provider()->Init())) {
+        fake_state->time_provider()->Init() &&
+        fake_state->updater_provider()->Init())) {
     return NULL;
   }
   return fake_state.release();