shill: Move network scanning to capability delegates.

Mostly refactor only. This patch also moves networks_found and scanning
properties registration from the device to the GSM capability delegate.

BUG=chromium-os:18735
TEST=unit tests

Change-Id: I0e3c06cf8320704ef01d8ea3dfa24047c19377d7
Reviewed-on: https://gerrit.chromium.org/gerrit/11482
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/cellular_capability.h b/cellular_capability.h
index c4e72e1..4030d62 100644
--- a/cellular_capability.h
+++ b/cellular_capability.h
@@ -47,6 +47,9 @@
                          const std::string &new_pin,
                          Error *error);
 
+  // Network scanning. The default implementation fails by populating |error|.
+  virtual void Scan(Error *error);
+
   // Returns an empty string if the network technology is unknown.
   virtual std::string GetNetworkTechnologyString() const = 0;