model+ndn.cxx+test: Finishing implementation of ApiFace (now timeouts are working as well)

Also, adding a basic test case to test ApiFace

Refs #1005 (http://redmine.named-data.net/)
diff --git a/model/ndn-l3-protocol.cc b/model/ndn-l3-protocol.cc
index f0c660d..e89c9ea 100644
--- a/model/ndn-l3-protocol.cc
+++ b/model/ndn-l3-protocol.cc
@@ -108,10 +108,10 @@
 {
   NS_LOG_FUNCTION (this);
 
-  for (FaceList::iterator i = m_faces.begin (); i != m_faces.end (); ++i)
-    {
-      *i = 0;
-    }
+  // for (FaceList::iterator i = m_faces.begin (); i != m_faces.end (); ++i)
+  //   {
+  //     *i = 0;
+  //   }
   m_faces.clear ();
   m_node = 0;
 
@@ -142,6 +142,7 @@
 void
 L3Protocol::RemoveFace (Ptr<Face> face)
 {
+  NS_LOG_FUNCTION (this << boost::cref (*face));
   // ask face to register in lower-layer stack
   face->UnRegisterProtocolHandlers ();
   Ptr<Pit> pit = GetObject<Pit> ();
@@ -166,7 +167,10 @@
     }
 
   FaceList::iterator face_it = find (m_faces.begin(), m_faces.end(), face);
-  NS_ASSERT_MSG (face_it != m_faces.end (), "Attempt to remove face that doesn't exist");
+  if (face_it == m_faces.end ())
+    {
+      return;
+    }
   m_faces.erase (face_it);
 
   GetObject<Fib> ()->RemoveFromAll (face);