DataChannel[Interface]::[message/bytes]_[sent/received]() added.

These are required for the RTCDataChannelStats[1] that will be collected
in a follow-up CL.

[1] https://w3c.github.io/webrtc-stats/#dcstats-dict*

BUG=chromium:654927, chromium:627816

Review-Url: https://codereview.webrtc.org/2413803002
Cr-Commit-Position: refs/heads/master@{#14616}
diff --git a/webrtc/api/datachannel.cc b/webrtc/api/datachannel.cc
index 066e60c..af694b7 100644
--- a/webrtc/api/datachannel.cc
+++ b/webrtc/api/datachannel.cc
@@ -126,8 +126,12 @@
     cricket::DataChannelType dct,
     const std::string& label)
     : label_(label),
-      observer_(NULL),
+      observer_(nullptr),
       state_(kConnecting),
+      messages_sent_(0),
+      bytes_sent_(0),
+      messages_received_(0),
+      bytes_received_(0),
       data_channel_type_(dct),
       provider_(provider),
       handshake_state_(kHandshakeInit),
@@ -367,6 +371,8 @@
   bool binary = (params.type == cricket::DMT_BINARY);
   std::unique_ptr<DataBuffer> buffer(new DataBuffer(payload, binary));
   if (state_ == kOpen && observer_) {
+    ++messages_received_;
+    bytes_received_ += buffer->size();
     observer_->OnMessage(*buffer.get());
   } else {
     if (queued_received_data_.byte_count() + payload.size() >
@@ -498,6 +504,8 @@
 
   while (!queued_received_data_.Empty()) {
     std::unique_ptr<DataBuffer> buffer(queued_received_data_.Front());
+    ++messages_received_;
+    bytes_received_ += buffer->size();
     observer_->OnMessage(*buffer);
     queued_received_data_.Pop();
   }
@@ -551,6 +559,8 @@
   bool success = provider_->SendData(send_params, buffer.data, &send_result);
 
   if (success) {
+    ++messages_sent_;
+    bytes_sent_ += buffer.size();
     return true;
   }