PM: Add a shill provider skeleton.

This introduces an initial implementation of a shill provider. None of
the backend works, of course; for now, this includes the following:

* Three variables used for obtaining the connectivity status, current
  connection type and the last time the connection has changed. This
  should suffice for computing current policy-related decisions, such as
  whether/when to update depending on the connection type.  However, as
  I'm not entirely sure how to track the last-changed time, it might
  change as the implementation ramps up. The variables are currently
  initialized to a deterministic default.

* Unit tests for the existing (very minimal) functionality.

BUG=None
TEST=Builds and passes unit tests.

Change-Id: Ib4fcefb6bcbed43cd3ba7615de5eaad996fb7fb3
Reviewed-on: https://chromium-review.googlesource.com/184491
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
diff --git a/SConstruct b/SConstruct
index 4bfc425..9a9f007 100644
--- a/SConstruct
+++ b/SConstruct
@@ -240,6 +240,7 @@
                    payload_state.cc
                    policy_manager/real_random_provider.cc
                    policy_manager/evaluation_context.cc
+                   policy_manager/real_shill_provider.cc
                    postinstall_runner_action.cc
                    prefs.cc
                    proxy_resolver.cc
@@ -293,6 +294,7 @@
                             policy_manager/evaluation_context_unittest.cc
                             policy_manager/generic_variables_unittest.cc
                             policy_manager/real_random_provider_unittest.cc
+                            policy_manager/real_shill_provider_unittest.cc
                             policy_manager/variable_unittest.cc
                             postinstall_runner_action_unittest.cc
                             prefs_unittest.cc