face: Implementing close operation and many related fixes in TcpFace and TcpChannel

Change-Id: Ib6b751e80454e149bf94f3867663d5e705cbf4a0
refs: #1250, #1248
diff --git a/daemon/mgmt/internal-face.hpp b/daemon/mgmt/internal-face.hpp
index 9539a9e..8d5805c 100644
--- a/daemon/mgmt/internal-face.hpp
+++ b/daemon/mgmt/internal-face.hpp
@@ -15,6 +15,13 @@
 class InternalFace : public Face, public AppFace
 {
 public:
+  /**
+   * \brief InternalFace-related error
+   */
+  struct Error : public Face::Error
+  {
+    Error(const std::string& what) : Face::Error(what) {}
+  };
 
   InternalFace();
 
@@ -26,6 +33,9 @@
   virtual void
   sendData(const Data& data);
 
+  virtual void
+  close();
+
   // Methods implementing AppFace interface. Do not invoke from forwarder.
 
   virtual void