utils: Fixes compilation of tracers

This commit also replaces use of boost::tuple with std::tuple and
boost::shared_ptr with std::shared_ptr

L3AggregateTracer is completely removed, as its functionality is
duplicated and extended by L3RateTracer
diff --git a/utils/tracers/l2-tracer.cpp b/utils/tracers/l2-tracer.cpp
index bf1fcf1..47c208b 100644
--- a/utils/tracers/l2-tracer.cpp
+++ b/utils/tracers/l2-tracer.cpp
@@ -19,6 +19,7 @@
  */
 
 #include "l2-tracer.hpp"
+
 #include "ns3/node.h"
 #include "ns3/config.h"
 #include "ns3/names.h"
@@ -28,18 +29,16 @@
 #include "ns3/queue.h"
 #include <boost/lexical_cast.hpp>
 
-using namespace std;
-
 namespace ns3 {
 
 L2Tracer::L2Tracer(Ptr<Node> node)
   : m_nodePtr(node)
 {
-  m_node = boost::lexical_cast<string>(m_nodePtr->GetId());
+  m_node = boost::lexical_cast<std::string>(m_nodePtr->GetId());
 
   Connect();
 
-  string name = Names::FindName(node);
+  std::string name = Names::FindName(node);
   if (!name.empty()) {
     m_node = name;
   }