shill: Implement service sorting

Sort the list of Services for presentation to
RPC callers, essentially copying the current flimflam
sorting criteria.  Introduce the TechnologyOrder to
the Manager.

BUG=chromium-os:20114
TEST=New unit tests

Change-Id: I766b2297ba3170a7a6ab5adfe68425a8011be4fb
Reviewed-on: http://gerrit.chromium.org/gerrit/8205
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
diff --git a/wifi_service_unittest.cc b/wifi_service_unittest.cc
index 5d9d309..e142d86 100644
--- a/wifi_service_unittest.cc
+++ b/wifi_service_unittest.cc
@@ -56,6 +56,7 @@
                 isxdigit(id[i]) ||
                 (isalpha(id[i]) && islower(id[i])));
   }
+  EXPECT_TRUE(wifi_service->TechnologyIs(Technology::kWifi));
   size_t mac_pos = id.find(StringToLowerASCII(string(fake_mac)));
   EXPECT_NE(mac_pos, string::npos);
   EXPECT_NE(id.find(string(flimflam::kModeManaged), mac_pos), string::npos);