management: nfdc support and link error fix

Static INVALID_FACE_ID constant was causing link error (multiple
definitions). Now it is defined just as a constant and moved to
the general-purpose NFD-related ``encoding/tlv-nfd.hpp`` header.

Change-Id: I04295fa07f809aae9a24a531e31facf09c78729f
refs: #1198
diff --git a/src/management/nfd-controller.hpp b/src/management/nfd-controller.hpp
index aa788a9..850c72d 100644
--- a/src/management/nfd-controller.hpp
+++ b/src/management/nfd-controller.hpp
@@ -16,11 +16,13 @@
 namespace nfd {
 
 class FibManagementOptions;
+class FaceManagementOptions;
 
 class Controller : public ndn::Controller
 {
 public:
   typedef function<void(const FibManagementOptions&)> FibCommandSucceedCallback;
+  typedef function<void(const FaceManagementOptions&)> FaceCommandSucceedCallback;
 
   /**
    * @brief Construct ndnd::Control object
@@ -37,27 +39,35 @@
                        const SuccessCallback& onSuccess,
                        const FailCallback&    onFail);
 
+protected:
   void
   startFibCommand(const std::string& command,
                   const FibManagementOptions& options,
                   const FibCommandSucceedCallback& onSuccess,
                   const FailCallback& onFailure);
+
+  void
+  startFaceCommand(const std::string& command,
+                   const FaceManagementOptions& options,
+                   const FaceCommandSucceedCallback& onSuccess,
+                   const FailCallback& onFailure);
+
 private:
   void
   recordSelfRegisteredFaceId(const FibManagementOptions& entry,
                              const SuccessCallback& onSuccess);
 
-  // void
-  // processFaceActionResponse(Data& data,
-  //                           const FaceOperationSucceedCallback& onSuccess,
-  //                           const FailCallback&    onFail);
-
   void
   processFibCommandResponse(Data& data,
                             const FibCommandSucceedCallback& onSuccess,
                             const FailCallback& onFail);
-  
-private:
+
+  void
+  processFaceCommandResponse(Data& data,
+                             const FaceCommandSucceedCallback& onSuccess,
+                             const FailCallback& onFail);
+
+protected:
   Face& m_face;
   KeyChain m_keyChain;
   uint64_t m_faceId; // internal face ID (needed for prefix de-registration)