shill: PPP dongles: cleanly move Service from Cellular to PPPDevice

In CL:61602, I added a CHECK that the Cellular object doesn't have
a selected_service() when PPP comes up. The idea was to ensure that
we only have one Device trying to drive the state of the CellularService.

This CHECK fails on devices with an embryonic cdc_ether or cdc_ncm
interface, because we SelectService() in LinkEvent().

Resolve this by dropping the selected_service() in StartPPP().
We do this using DropConnection(), which may be what I should have
done all along. (DropConnection() also takes care of killing dhcpcd,
if it is running.)

While there: fix up a couple of buggy log statements in device_info.

BUG=chromium:261364
TEST=unit tests, manual

Manual testing
--------------
- plug in a dongle with an embryonic cdc_ether or cdc_ncm interface.
  e.g. the huawei UMG1691 dongle
- check that the cellular connection comes up (IP address is configured,
  can load web pages)
- check that shill did not crash in the process (grep crash /var/log/messages)
- repeat steps 1-3 with a ppp-only dongle (e.g. huawei e369)

Change-Id: Ia270f00746dc321b41a223e9f848ffc796dd8528
Reviewed-on: https://gerrit.chromium.org/gerrit/62712
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
diff --git a/device_info.cc b/device_info.cc
index d21a0e0..e7240c5 100644
--- a/device_info.cc
+++ b/device_info.cc
@@ -302,11 +302,11 @@
   if (driver_name == kDriverCdcEther || driver_name == kDriverCdcNcm) {
     if (IsCdcEthernetModemDevice(iface_name)) {
       LOG(INFO) << StringPrintf("%s: device %s is a %s modem device", __func__,
-                                driver_name.c_str(), iface_name.c_str());
+                                iface_name.c_str(), driver_name.c_str());
       return Technology::kCellular;
     }
     SLOG(Device, 2) << StringPrintf("%s: device %s is a %s device", __func__,
-                                    driver_name.c_str(), iface_name.c_str());
+                                    iface_name.c_str(), driver_name.c_str());
     return Technology::kCDCEthernet;
   }