shill: Add Technology class

Move Technology enum out into its own class, and create static
functions for converting between these and strings.

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

Change-Id: I9e3aea44e5d0b14d844328f023b01d7f8ea04c42
Reviewed-on: http://gerrit.chromium.org/gerrit/8204
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/manager.cc b/manager.cc
index 3b109e2..85160cd 100644
--- a/manager.cc
+++ b/manager.cc
@@ -225,7 +225,7 @@
   // TODO(pstew): This should trigger re-sorting of services, autoconnect, etc.
 }
 
-void Manager::FilterByTechnology(Device::Technology tech,
+void Manager::FilterByTechnology(Technology::Identifier tech,
                                  vector<DeviceRefPtr> *found) {
   CHECK(found);
   vector<DeviceRefPtr>::iterator it;
@@ -328,7 +328,7 @@
 void Manager::RequestScan(const std::string &technology, Error *error) {
   if (technology == flimflam::kTypeWifi || technology == "") {
     vector<DeviceRefPtr> wifi_devices;
-    FilterByTechnology(Device::kWifi, &wifi_devices);
+    FilterByTechnology(Technology::kWifi, &wifi_devices);
 
     for (vector<DeviceRefPtr>::iterator it = wifi_devices.begin();
          it != wifi_devices.end();