core: drop std::function and ndn::Exclude from common.hpp, add ndn::optional

Change-Id: Ie3983d8b6f9929430efd8ada8d942e3f95755cd4
diff --git a/tests/daemon/mgmt/command-authenticator.t.cpp b/tests/daemon/mgmt/command-authenticator.t.cpp
index ce4ab53..5f55451 100644
--- a/tests/daemon/mgmt/command-authenticator.t.cpp
+++ b/tests/daemon/mgmt/command-authenticator.t.cpp
@@ -60,7 +60,7 @@
 
   bool
   authorize(const std::string& module, const Name& identity,
-            const function<void(Interest&)>& modifyInterest = nullptr)
+            const std::function<void(Interest&)>& modifyInterest = nullptr)
   {
     Interest interest = this->makeControlCommandRequest(Name("/prefix/" + module + "/verb"),
                                                         ControlParameters(), identity);
@@ -262,7 +262,7 @@
   }
 
   bool
-  authorize1(const function<void(Interest&)>& modifyInterest)
+  authorize1(const std::function<void(Interest&)>& modifyInterest)
   {
     return authorize("module1", id1, modifyInterest);
   }