shill: Refactor message types into UserBoundNlMessage

Since all UserBoundNlMessage subclasses have a particular message type
and type string, pull that functionality into the abstract super class.

BUG=None
TEST=Unit tests

Change-Id: Ib44db2acabab33c48de2ef1143de6be3e1df0acf
Reviewed-on: https://gerrit.chromium.org/gerrit/37731
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Ready: Christopher Wiley <wiley@chromium.org>
diff --git a/callback80211_metrics.cc b/callback80211_metrics.cc
index 9b20966..9acc501 100644
--- a/callback80211_metrics.cc
+++ b/callback80211_metrics.cc
@@ -29,9 +29,10 @@
 
 void Callback80211Metrics::Config80211MessageCallback(
     const UserBoundNlMessage &message) {
-  SLOG(WiFi, 3) << "Received " << message.GetMessageTypeString()
-                << " (" << + message.GetMessageType() << ")";
-  if (metrics_ && message.GetMessageType() == DeauthenticateMessage::kCommand) {
+  SLOG(WiFi, 3) << "Received " << message.message_type_string()
+                << " (" << + message.message_type() << ")";
+  if (metrics_ &&
+      message.message_type() == DeauthenticateMessage::kCommand) {
     Metrics::WiFiDisconnectByWhom by_whom =
         message.AttributeExists(NL80211_ATTR_DISCONNECTED_BY_AP) ?
                     Metrics::kDisconnectedByAp : Metrics::kDisconnectedNotByAp;