[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/ipconfig_unittest.cc b/ipconfig_unittest.cc
index b20cfc1..6e71b2d 100644
--- a/ipconfig_unittest.cc
+++ b/ipconfig_unittest.cc
@@ -70,12 +70,12 @@
 
 class UpdateCallbackTest {
  public:
-  UpdateCallbackTest(IPConfigRefPtr ipconfig, bool success)
+  UpdateCallbackTest(const IPConfigRefPtr &ipconfig, bool success)
       : 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());
     EXPECT_EQ(success_, success);