face: InternalForwarderTransport & InternalClientTransport

InternalForwarderTransport and InternalClientTransport are a pair of forwarder-side
and client-side transports that can be connected with each other, so that link-layer
packets sent by one transport can be received by the other.

They are used together with LpFace, GenericLinkService, and ndn::Face to replace
InternalFace and InternalClientFace used by NFD management.

They also replace TopologyForwarderTransport and TopologyClientTransport used by
TopologyTester of forwarding unit tests.

refs #3225

Change-Id: I5b6b579c43dfd0b1b9def5100be2ce516219cb74
diff --git a/daemon/nfd.hpp b/daemon/nfd.hpp
index 5801499..57b5e8a 100644
--- a/daemon/nfd.hpp
+++ b/daemon/nfd.hpp
@@ -34,6 +34,9 @@
 #include <ndn-cxx/util/network-monitor.hpp>
 
 namespace ndn {
+
+class Face;
+
 namespace mgmt {
 
 class Dispatcher;
@@ -43,13 +46,12 @@
 
 namespace nfd {
 
+class Face;
 class Forwarder;
-class InternalFace;
 class FibManager;
 class FaceManager;
 class StrategyChoiceManager;
 class ForwarderStatusManager;
-class InternalClientFace;
 class CommandValidator;
 
 /**
@@ -107,10 +109,10 @@
 
   unique_ptr<Forwarder> m_forwarder;
 
-  ndn::KeyChain&                 m_keyChain;
-  shared_ptr<InternalFace>       m_internalFace;
-  shared_ptr<InternalClientFace> m_internalClientFace;
-  unique_ptr<CommandValidator>   m_validator;
+  ndn::KeyChain&               m_keyChain;
+  shared_ptr<Face>             m_internalFace;
+  shared_ptr<ndn::Face>        m_internalClientFace;
+  unique_ptr<CommandValidator> m_validator;
 
   unique_ptr<ndn::mgmt::Dispatcher>  m_dispatcher;
   unique_ptr<FibManager>             m_fibManager;