[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/ethernet_service.h b/ethernet_service.h
index 1886854..df708ae 100644
--- a/ethernet_service.h
+++ b/ethernet_service.h
@@ -8,20 +8,17 @@
 #include <base/basictypes.h>
 
 #include "shill/ethernet.h"
-#include "shill/device.h"
+#include "shill/refptr_types.h"
 #include "shill/shill_event.h"
 #include "shill/service.h"
 
 namespace shill {
 
-
-class Ethernet;
-
 class EthernetService : public Service {
  public:
   EthernetService(ControlInterface *control_interface,
                   EventDispatcher *dispatcher,
-                  Ethernet *device,
+                  const EthernetRefPtr &device,
                   const std::string& name);
   ~EthernetService();
   void Connect();
@@ -31,7 +28,7 @@
   virtual std::string CalculateState() { return "idle"; }
 
  private:
-  Ethernet *ethernet_;
+  EthernetRefPtr ethernet_;
   const std::string type_;
   DISALLOW_COPY_AND_ASSIGN(EthernetService);
 };