shill: Do a better job keeping the Service.State property up to date.

For the network settings UI to behave correctly, service state
transitions need to be reflected in the value of the Service.State
property. The goal here is to emulate flimflam's behavior, but this
is not an exact science. The changes in this CL seem to result
in correct UI behavior.

BUG=chromium-os:28472,chromium-os:28538
TEST=Tested manually under as wide a variety of connect and disconnect
scenarios as I could come up with.

Change-Id: I7c8458cceafc228ba579a32631194bff24602e55
Reviewed-on: https://gerrit.chromium.org/gerrit/19395
Commit-Ready: Eric Shienbrood <ers@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
diff --git a/cellular.h b/cellular.h
index 86863d0..1c31831 100644
--- a/cellular.h
+++ b/cellular.h
@@ -188,6 +188,7 @@
   FRIEND_TEST(CellularServiceTest, FriendlyName);
   FRIEND_TEST(CellularTest, CreateService);
   FRIEND_TEST(CellularTest, Connect);
+  FRIEND_TEST(CellularTest, ConnectFailure);
   FRIEND_TEST(CellularTest, DisableModem);
   FRIEND_TEST(CellularTest, Disconnect);
   FRIEND_TEST(CellularTest, StartConnected);