[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/dhcp_config_unittest.cc b/dhcp_config_unittest.cc
index 3edeeae..44d638d 100644
--- a/dhcp_config_unittest.cc
+++ b/dhcp_config_unittest.cc
@@ -111,14 +111,14 @@
 class UpdateCallbackTest {
  public:
   UpdateCallbackTest(const string &message,
-                     IPConfigRefPtr ipconfig,
+                     const IPConfigRefPtr &ipconfig,
                      bool success)
       : message_(message),
         ipconfig_(ipconfig),
         success_(success),
         called_(false) {}
 
-  void Callback(IPConfigRefPtr ipconfig, bool success) {
+  void Callback(const IPConfigRefPtr &ipconfig, bool success) {
     called_ = true;
     EXPECT_EQ(ipconfig_.get(), ipconfig.get()) << message_;
     EXPECT_EQ(success_, success) << message_;