PM: ShillProvider now provides the connection tethering mode.

This adds a connection tethering variable to the RealShillProvider.  In
doing so, we:

* Query the default service attributes (type, tethering) eagerly, as
  soon as a default service signal is received (but only if the default
  service has actually changed).

* All variables are reduced to CopyVariable instances, migrating all
  DBus communication logic into the RealShillProvider and eliminating
  the ShillConnector helper class. This also allows us to turn variables
  into contained members and initialize them during construction.

BUG=chromium:355732
TEST=Unit tests.

Change-Id: I8d9798075a4bd5b9e2cec65cb437d0018654d2c6
Reviewed-on: https://chromium-review.googlesource.com/193927
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/variable.h b/policy_manager/variable.h
index ae2b99e..cd13be1 100644
--- a/policy_manager/variable.h
+++ b/policy_manager/variable.h
@@ -181,9 +181,12 @@
   FRIEND_TEST(PmRealRandomProviderTest, GetRandomValues);
   friend class PmRealShillProviderTest;
   FRIEND_TEST(PmRealShillProviderTest, ReadBaseValues);
-  FRIEND_TEST(PmRealShillProviderTest, ReadChangedValuesConnectedViaVpn);
-  FRIEND_TEST(PmRealShillProviderTest, ReadChangedValuesConnectedTwoSignals);
-  FRIEND_TEST(PmRealShillProviderTest, ConnectionTypeCached);
+  FRIEND_TEST(PmRealShillProviderTest, ReadConnTypeVpn);
+  FRIEND_TEST(PmRealShillProviderTest, ReadLastChangedTimeTwoSignals);
+  FRIEND_TEST(PmRealShillProviderTest, ConnTypeCacheUsed);
+  FRIEND_TEST(PmRealShillProviderTest, ConnTypeCacheRemainsValid);
+  FRIEND_TEST(PmRealShillProviderTest, ConnTetheringCacheUsed);
+  FRIEND_TEST(PmRealShillProviderTest, ConnTetheringCacheRemainsValid);
   FRIEND_TEST(PmRealShillProviderTest, NoInitConnStatusReadBaseValues);
   friend class PmRealTimeProviderTest;
   FRIEND_TEST(PmRealTimeProviderTest, CurrDateValid);