face: Implementing nfd::Controller

This commit also adds an option for Node constructor to use
nfd::Controller instead of default ndnd::Controller to set interest
filter (register prefix).

Change-Id: If395756c1b98abe909cec0967c07d347affe5928
diff --git a/examples/producer.cpp b/examples/producer.cpp
index 4a24bac..53ccdc0 100644
--- a/examples/producer.cpp
+++ b/examples/producer.cpp
@@ -49,11 +49,12 @@
     face_.put(data);
   }
 
+
   void
-  onRegisterFailed(const ptr_lib::shared_ptr<const Name>&)
+  onRegisterFailed (const ndn::Name& prefix, const std::string& reason)
   {
-    std::cerr << "ERROR: Failed to register prefix in local hub's daemon" << std::endl;
-    face_.shutdown();
+    std::cerr << "ERROR: Failed to register prefix in local hub's daemon (" << reason << ")" << std::endl;
+    face_.shutdown ();
   }
   
   void
@@ -61,7 +62,7 @@
   {
     face_.setInterestFilter("/localhost/testApp",
                             func_lib::bind(&Producer::onInterest, this, _1, _2),
-                            func_lib::bind(&Producer::onRegisterFailed, this, _1));
+                            func_lib::bind(&Producer::onRegisterFailed, this, _1, _2));
     face_.processEvents();
   }