face: refactor handling of LinkType face trait

This commit also includes some cleanups, fixes EthernetFace to report
the correct LinkType, and makes (get|set)Description non-virtual.

Change-Id: I53909d7bfa02a92641b523a766359413c966aae6
Refs: #2563
diff --git a/common.hpp b/common.hpp
index e7ed28d..aac1580 100644
--- a/common.hpp
+++ b/common.hpp
@@ -61,7 +61,7 @@
 #include <ndn-cxx/common.hpp>
 #include <ndn-cxx/interest.hpp>
 #include <ndn-cxx/data.hpp>
-#include <ndn-cxx/util/event-emitter.hpp> // deprecated
+#include <ndn-cxx/util/face-uri.hpp>
 #include <ndn-cxx/util/signal.hpp>
 
 #include <boost/algorithm/string.hpp>
@@ -80,7 +80,6 @@
 using std::shared_ptr;
 using std::unique_ptr;
 using std::weak_ptr;
-using std::bad_weak_ptr;
 using std::make_shared;
 using std::enable_shared_from_this;
 
@@ -98,7 +97,7 @@
 using ndn::Name;
 using ndn::Exclude;
 using ndn::Block;
-using ndn::util::EventEmitter; // deprecated
+using ndn::util::FaceUri;
 
 namespace tlv {
 // Don't write "namespace tlv = ndn::tlv", because NFD can add other members into this namespace.