catalog: implement catalog driver and facade

This commit also refactories the QueryAdapter's code, adds corresponding
unit-test. Catalog-adapter and catalog do not use template, so the definition
are moved to corresponding cpp files.

refs: #2599, #2600

Change-Id: I2be492ec3c2538e865bfa7c09ac8cd49e2a9527d
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 9eac278..24b497d 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -21,7 +21,6 @@
     set -x
     sudo apt-get update -qq -y
     sudo apt-get -qq -y install build-essential pkg-config $BOOST_PKG libssl-dev \
-                                libcrypto++-dev libsqlite3-dev mysql-client \
-                                mysql-server libjsoncpp-dev protobuf-compiler \
-                                libprotobuf-dev
+                                libcrypto++-dev libsqlite3-dev libmysqlclient-dev \
+                                libjsoncpp-dev protobuf-compiler libprotobuf-dev
 fi
diff --git a/.jenkins.d/10-ndn-cxx.sh b/.jenkins.d/10-ndn-cxx.sh
index 2af7d6a..3ca0932 100755
--- a/.jenkins.d/10-ndn-cxx.sh
+++ b/.jenkins.d/10-ndn-cxx.sh
@@ -23,7 +23,7 @@
 
 pushd ndn-cxx >/dev/null
 
-./waf configure -j1 --color=yes --without-osx-keychain
+./waf configure -j1 --color=yes --without-osx-keychain --disable-static --enable-shared
 ./waf -j1 --color=yes
 sudo ./waf install -j1 --color=yes
 
diff --git a/.jenkins.d/30-unit-tests.sh b/.jenkins.d/30-unit-tests.sh
index 815e3f1..913a563 100755
--- a/.jenkins.d/30-unit-tests.sh
+++ b/.jenkins.d/30-unit-tests.sh
@@ -5,5 +5,7 @@
 # Prepare environment
 sudo rm -Rf ~/.ndn
 
+export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
+
 # Run unit tests
 ./build/catalog/unit-tests -l test_suite