face: Cleaning up onFail EventEmitter after event is fired from Face::fail

Change-Id: I3e90ae4af6843c2cd6d24835e0d3dab98f4c94df
Refs: #1718
diff --git a/daemon/face/face.cpp b/daemon/face/face.cpp
index ea08f5b..2c81a9a 100644
--- a/daemon/face/face.cpp
+++ b/daemon/face/face.cpp
@@ -127,6 +127,8 @@
 
   m_isFailed = true;
   this->onFail(reason);
+
+  this->onFail.clear();
 }
 
 ndn::nfd::FaceStatus
diff --git a/daemon/fw/face-table.cpp b/daemon/fw/face-table.cpp
index ec9deb6..10dbdfd 100644
--- a/daemon/fw/face-table.cpp
+++ b/daemon/fw/face-table.cpp
@@ -82,6 +82,8 @@
   //     does not support only removing Forwarder's subscription
   face->onReceiveInterest.clear();
   face->onReceiveData    .clear();
+  face->onSendInterest   .clear();
+  face->onSendData       .clear();
   // don't clear onFail because other functions may need to execute
 
   m_forwarder.getFib().removeNextHopFromAllEntries(face);