PolicyManager: New Config provider.

This patch adds a new Config provider to the Policy Manager. This
provider reads a fixed set of config options from a file on /etc.
On dev mode, if the file is present on the stateful partition, it
will read it from there instead.

Currently, the only enabled setting consists on the OOBE enabled bit.
This setting states whether the board/device has an OOBE or not.

BUG=chromium:359674
TEST=Unit tests added and passing.

Change-Id: I86c64ab4c447409ef7aeccf0ed374906edf450e7
Reviewed-on: https://chromium-review.googlesource.com/195542
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/policy_manager/fake_state.h b/policy_manager/fake_state.h
index edad4aa..4f9243b 100644
--- a/policy_manager/fake_state.h
+++ b/policy_manager/fake_state.h
@@ -5,6 +5,7 @@
 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_
 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_FAKE_STATE_H_
 
+#include "update_engine/policy_manager/fake_config_provider.h"
 #include "update_engine/policy_manager/fake_device_policy_provider.h"
 #include "update_engine/policy_manager/fake_random_provider.h"
 #include "update_engine/policy_manager/fake_shill_provider.h"
@@ -25,10 +26,15 @@
   virtual ~FakeState() {}
 
   // Downcasted getters, to allow access to the fake instances during testing.
+  virtual FakeConfigProvider* config_provider() override {
+    return reinterpret_cast<FakeConfigProvider*>(State::config_provider());
+  }
+
   virtual FakeDevicePolicyProvider* device_policy_provider() override {
     return reinterpret_cast<FakeDevicePolicyProvider*>(
         State::device_policy_provider());
   }
+
   virtual FakeRandomProvider* random_provider() override {
     return reinterpret_cast<FakeRandomProvider*>(State::random_provider());
   }