util: Correcting code style in regular expression implementation

Change-Id: I7c31c2c8c7a68094da6e73223171b8ac0c886370
Refs: #1403
face: Implementing InterestFilter abstraction to be used with setInterestFilter

This commit minimally changes the API, primarily altering the internal
structures preparing for separation of `registerPrefix` (=send a command
to local forwarder to register FIB/RIB entry) and `setInterestFilter`
(=update library's InterestFilter->Callback dispatch table).

The existing setInterestFilter methods preserve all previous functionality
(any string URI or ndn::Name can be supplied as a first parameter),
but also allow InterestFilter as the filtering parameter.
InterestFilter, provides a way to select Interest either based on prefix,
as before, or based on prefix and regular expression.

Change-Id: Id71404f2163f82c261018d21db172111c4b0da69
Refs: #1275
face+management: Removing ndnd::Controller and re-designing controllers

As of this commit, there is only one controller: nfd::Controller.
Legacy ndnd-tlv is no longer supported, but it is still possible to use
NFD FIB Management directly (RIB Management commands are used by
default).  To request direct FIB management, one needs to call
Face::setDirectFibManagement(true) or configure protocol variable in the
config file.

Instead of using virtual methods of the controllers, a special
setInterestFilterImpl method will select proper prefix registration
method.  In addition to that, setInterestFilterImpl will also remember
how exactly the prefix should be de-registered, including security
parameters.

Change-Id: If9d4c7e87f6d80b6cb766a4116e04e846a51272d
Refs: #1576, #1577
face: Finalizing separation between registerPrefix and setInterstFilter

New registerPrefix and setInterestFilter methods allow distinct
operations of registering with local NDN forwarder (e.g., using RIB
management protocol) and setting up application-specific OnInterest call
dispatch using InterestFilters.

Change-Id: I7e4f069da131a21574a2fd9cd20e8703c34e7008
Refs: #1275
build: Add optional pthread flag when detecting Crypto++

This commit also includes a small fix to support Python3

Change-Id: Ifa0c547bd872ab749745b5bdc778d4b3269bb87e
Refs: #1590
build: Correcting library detection

When detecting location of the library, `includes` and `libpath`
variables must be used instead of `cxxflags` and `linkflags`.  While the
latter also makes everything work, it results in unexpected behavior:
waf always adds LINKFLAGS* in the beginning of the linking command,
which can screw up order in which libraries are selected (e.g.,
system-installed library can be chosen instead of the compiled version).

Change-Id: I9ed36e8a4e8523b33ca2e88414aed8de5111c9cd
build: Disable building examples by default

To enable examples, one need to use `--with-examples` configure flag.
Note about this added to the getting started instructions.

Change-Id: If9afb1fd3f298b634adb8bb3a4bcae151ac8f7af
src: Removing unnecessary use of cref() in concert with make_shared

This commit also replaces all usages of shared_ptr<T>(new T) with
make_shared<T> in Face class implementation.

Change-Id: I44971c44eb7f2c25ecfe00e185309973c9cbd246
Refs: #1592
src: Removing deprecated logging facility

This commit removes last usages of logging facility and removes the
facility all together.  At some point in the future we may add logging
back, but it should be something that is depends and configured from
the application.

Change-Id: I10bd94aea05f127041d68cb77a77eb96e929c880
docs: Updating doxygen comments and minor update to normalize API

Change-Id: I24686acc36f372ee2eddffaaa6c104f964ceeca4
Refs: #1299
src: Refactoring common.hpp and minimizing exposed includes

Face class has relatively large rewrite to hide internals using
Implementor pattern.  As of this commit, <boost/asio.hpp> is not
automatically included whenever ndn-cxx/face.hpp is included.  If it is
needed to directly work with io_service, asio.hpp should be specifically
included.

Change-Id: Ie742b851025b4e3da634eb981319df0f42937855