shill: Combines user- and kernel-bound nl80211 messages.

The UserBoundNlMessage and KernelBoundNlMessage classes are merged
into Nl80211Message.

As part of combining the two messages, the code was modified to use raw
socket writes instead of using libnl (in order to test kernel-bound
Nl80211Message writing) for sending a message.  Note, however, that
libnl code is still liberally used; there's just less use of it than
before.  Some (a little) effort was made to be consistent with the
RTNLHandler code toward combining the codebases, eventually.

BUG=chromium-os:36099, chromium-os:36638
TEST=unittests and manual tests (I added code to create an
Nl80211Message, send that message to the kernel, and display the output;
I hand inspected the output).

Change-Id: I7b04e49cee84745d1b02f1dd2b064f9e9a0aada2
Reviewed-on: https://gerrit.chromium.org/gerrit/40266
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
diff --git a/callback80211_metrics.h b/callback80211_metrics.h
index 7bdd4ea..bdd2f6c 100644
--- a/callback80211_metrics.h
+++ b/callback80211_metrics.h
@@ -15,7 +15,7 @@
 namespace shill {
 
 class Metrics;
-class UserBoundNlMessage;
+class Nl80211Message;
 
 // Config80211 callback object that sends stuff to UMA metrics.
 class Callback80211Metrics : public Callback80211Object {
@@ -23,7 +23,7 @@
   explicit Callback80211Metrics(Metrics *metrics);
 
  protected:
-  virtual void Config80211MessageCallback(const UserBoundNlMessage &msg);
+  virtual void Config80211MessageCallback(const Nl80211Message &msg);
 
  private:
   static const char kMetricLinkDisconnectCount[];