Fix non-critical updates on boards without an OOBE flow.

A recent change in the policy made update_engine to ignore available
updates if the OOBE flow is not completed and the update is not
critical. Nevertheless, some custom boards don't have a OOBE flow as
Chromebooks do and set is_oobe_enabled=false in the policy manager.
These board were not getting regular updates because the OOBE flow is
considered not completed in those cases.

This patch moves the is_oobe_enabled flag to the HardwareInterface class
together with the IsOOBEComplete() method and updates the callers to
check the IsOOBEEnabled() value before.

Bug: 28460247
Bug: 28553821
TEST=Added unittest for the disabled and not complete case.

Change-Id: Ifd3ac2dc5e7a43f6c24eb014b7e3eacad22e3ab3
diff --git a/update_engine.gyp b/update_engine.gyp
index b8eccdc..2f27dd4 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -508,6 +508,7 @@
             'connection_manager_unittest.cc',
             'fake_shill_proxy.cc',
             'fake_system_state.cc',
+            'hardware_chromeos_unittest.cc',
             'image_properties_chromeos_unittest.cc',
             'metrics_utils_unittest.cc',
             'omaha_request_action_unittest.cc',
@@ -549,7 +550,6 @@
             'update_manager/evaluation_context_unittest.cc',
             'update_manager/generic_variables_unittest.cc',
             'update_manager/prng_unittest.cc',
-            'update_manager/real_config_provider_unittest.cc',
             'update_manager/real_device_policy_provider_unittest.cc',
             'update_manager/real_random_provider_unittest.cc',
             'update_manager/real_shill_provider_unittest.cc',