shill: Add RTNLMessage: rtnl message parser/composer

Add RTNLMessage type.  This will be used to remove some bespoke
messaging parsing, but more immediately, it will be used by the
routing code.

BUG=chromium-os:17277
TEST=New unittest

Change-Id: Idb0559b907f018e021193c51d30f5027c8debec3
Reviewed-on: http://gerrit.chromium.org/gerrit/4183
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/byte_string.cc b/byte_string.cc
index 3a3412f..3c9db10 100644
--- a/byte_string.cc
+++ b/byte_string.cc
@@ -49,4 +49,8 @@
   return data_ == b.data_;
 }
 
+void ByteString::Append(const ByteString &b) {
+  data_.insert(data_.end(), b.data_.begin(), b.data_.end());
+}
+
 }  // namespace shill