Implementing window-based CCNx consumer.  Adding RTO estimation.

- ContentObject increases window by 1
- NACK decreases window by 1
- TO doesn't change window

If window is zero, next packet is scheduled after 0.1*RTO
diff --git a/apps/ccnx-consumer.h b/apps/ccnx-consumer.h
index 31b4eb9..4bffbaf 100644
--- a/apps/ccnx-consumer.h
+++ b/apps/ccnx-consumer.h
@@ -27,6 +27,7 @@
 #include "ns3/ccnx-name-components.h"
 #include "ns3/nstime.h"
 #include "ns3/data-rate.h"
+#include "ns3/rtt-estimator.h"
 
 #include <set>
 
@@ -66,6 +67,8 @@
   OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
                    const Ptr<const Packet> &payload);
 
+  virtual void
+  OnTimeout (uint32_t sequenceNumber);
 
   // Simulator::Schedule doesn't work with protected members???
   void
@@ -127,9 +130,7 @@
   Time            m_retxTimer;
   EventId         m_retxEvent; // Event to check whether or not retransmission should be performed
 
-  Time            m_rto;        ///< \brief Retransmission timeout
-  Time            m_rttVar;     ///< \brief RTT variance
-  Time            m_sRtt;       ///< \brief smoothed RTT
+  Ptr<RttEstimator> m_rtt;
   
   Time               m_offTime;             ///< \brief Time interval between packets
   CcnxNameComponents m_interestName;        ///< \brief CcnxName of the Interest (use CcnxNameComponents)