[shill] Use ref-counted pointers more, break unneeded header deps

1) Replace more bare pointers with ref-counted pointers.
2) Move declarations of *RefPtr into a header file with fwd-declared classes
3) Make class headers include that, move inclusion of real headers to .cc files.

BUG=None
TEST=unit tests

Change-Id: I8208c82377c6dbefe6903561a503b8db63f063d6
Reviewed-on: http://gerrit.chromium.org/gerrit/3177
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index bf3d830..260245f 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -20,12 +20,12 @@
 
 WiFiService::WiFiService(ControlInterface *control_interface,
                          EventDispatcher *dispatcher,
-                         WiFi *device,
+                         const WiFiRefPtr &device,
                          const std::vector<uint8_t> ssid,
                          uint32_t mode,
                          const std::string &key_management,
                          const std::string &name)
-    : Service(control_interface, dispatcher, device, name),
+    : Service(control_interface, dispatcher, name),
       task_factory_(this),
       wifi_(device),
       ssid_(ssid),