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/ethernet_service.h b/ethernet_service.h
index e132f50..7f75da6 100644
--- a/ethernet_service.h
+++ b/ethernet_service.h
@@ -28,6 +28,7 @@
   // Inherited from Service.
   virtual void Connect(Error *error);
   virtual void Disconnect();
+  virtual bool TechnologyIs(const Technology::Identifier type) const;
 
   // ethernet_<MAC>
   virtual std::string GetStorageIdentifier();