Perform device discovery and registration in device_info

Also, do device classification, and create the beginnings of
Device subclasses for WiFi and Ethernet.

BUG=chromium-os:12933
TEST=Added unit tests.  Also manual on a testbed machine to confirm WiFi
device detection.

Change-Id: I48b8fa2b3b966b22acf80f693d9522bff0221884
Reviewed-on: http://gerrit.chromium.org/gerrit/1084
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/mock_device.h b/mock_device.h
index 637f32a..10c6a2c 100644
--- a/mock_device.h
+++ b/mock_device.h
@@ -22,8 +22,10 @@
  public:
   // A constructor for the Device object
   MockDevice(ControlInterface *control_interface,
-             EventDispatcher *dispatcher)
-      : Device(control_interface, dispatcher) {
+             EventDispatcher *dispatcher,
+             const string &link_name,
+             int interface_index)
+      : Device(control_interface, dispatcher, link_name, interface_index) {
     ON_CALL(*this, TechnologyIs(_)).WillByDefault(Return(false));
   }
   virtual ~MockDevice() {}