catalog: support autocompletion query

* use seaprate functions to for autocompletion query and component-based query
* add json-paramters as a name component in the query-results content
* set freshness for ACK data
* fix bug that catalog throws run-time error when malformed Json::value is used
* query-results data conforms the schema

Change-Id: I942c26888fa79c206f2fa27f6f0a92fc4a8bef79
refs: #3024, #2797, #3035, #3047
diff --git a/catalog/src/util/catalog-adapter.hpp b/catalog/src/util/catalog-adapter.hpp
index 2b03358..863f29a 100644
--- a/catalog/src/util/catalog-adapter.hpp
+++ b/catalog/src/util/catalog-adapter.hpp
@@ -72,7 +72,8 @@
    */
   virtual void
   setConfigFile(util::ConfigFile& config,
-                const ndn::Name& prefix) = 0;
+                const ndn::Name& prefix,
+                const std::vector<std::string>& nameFields) = 0;
 
 protected:
 
@@ -120,6 +121,7 @@
   ndn::Name m_prefix;
   // Name for the signing key
   ndn::Name m_signingId;
+  std::vector<std::string> m_nameFields;
 }; // class CatalogAdapter