shill: Add support for detecting PPP devices

Use the device ARP Hardware Type to detect both PPP devices.  Fix
up loopback to use the same.  Also add unit tests for
DeviceInfo::GetDeviceTechnology().

BUG=chromium-os:29771
TEST=New unit tests.  Manual: Run on device for loopback, ppp, tunnel and wifi

Change-Id: I8b39bcf68926757d10756b9cbc1692ec891e117f
Reviewed-on: https://gerrit.chromium.org/gerrit/20802
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/technology.h b/technology.h
index 821f558..67038bc 100644
--- a/technology.h
+++ b/technology.h
@@ -26,6 +26,7 @@
     kBlacklisted,
     kLoopback,
     kVirtioEthernet,  // Only for internal use in DeviceInfo.
+    kPPP,
     kUnknown,
   };
 
@@ -57,6 +58,7 @@
  private:
   static const char kLoopbackName[];
   static const char kTunnelName[];
+  static const char kPPPName[];
   static const char kUnknownName[];
 };