ndn.cxx: Initial work to introduce full NDN application API to ndnSIM

Refs #1005 (http://redmine.named-data.net/)
model: First set of major API changes and reorganizations

Main motive: change interface in Face class, resulting in need to change forwarding strategy interfaces

Refs #1005 (http://redmine.named-data.net/)
model: Major API changes

Interest and ContentObject are no longer derived from Header class.
Instead, they are encapsulating payload and, optionally, wire-formatted
Packet object.

Refs #1005 (http://redmine.named-data.net/)
model: Another set of refactoring/renaming to make code compile (not tested yet)

Refs #1005 (http://redmine.named-data.net/)
bindings: Rescan of python bindings

Refs #1005 (http://redmine.named-data.net/)
model+test: Fixing tests and making sure all tests pass

Refs #1005 (http://redmine.named-data.net/)
model: A basic implementation of ndn::ApiFace that can be used as an NDN handler in any "normal" NS-3 application

Refs #1005 (http://redmine.named-data.net/)
model+ndn.cxx+test: Finishing implementation of ApiFace (now timeouts are working as well)

Also, adding a basic test case to test ApiFace

Refs #1005 (http://redmine.named-data.net/)
model+ndn.cxx+apps: New application template (CallbackBasedApp) that can be used to prototype NS-3 applications in python

The current code allows simulating in python using ApiFace (passed basic tests)

Refs #1005 (http://redmine.named-data.net/)
model: Returning back support for CCNb wire format

Refs #1008 (http://redmine.named-data.net/)
model-wire-ccnb: Fixing a known bug with CCNb parsing

Refs #1008 (http://redmine.named-data.net/)
model: Adding ability to select desired default wire format

ndnSIM will accept and process (if no modifications required) packets in
any supported wire format (right now it is only ndnSIM and ccnb).
Wire format for creating of new packets can be selected (per-face)
thorough ns3::ndn::Face::WireFormat variable.

Refs #1008 (http://redmine.named-data.net/)
apps: Adding ability to ndn::Producer to configure desired fake signature and key locator (key name)

Refs #1008 (http://redmine.named-data.net/)
examples: ndn-simple-with-pcap example now used CCNb packet format

The output of the example can be parsed using, for example, ndndump tool
(https://github.com/named-data/ndndump):

   ndndump -o -o ndn-simple-trace.pcap

Refs #1008 (http://redmine.named-data.net/)
python: Rescanned bindings

Refs #1008 (http://redmine.named-data.net/)
model: Slight modification with wire format processing

Now it is possible to convert Name from/to wire format via ndn::Face
helper method (since Face is getting configured with specific wire
format)

Refs #1008 (http://redmine.named-data.net/issues/1008)
model: Updated API for pluggable wire format

As of this commit, the selected (default) wire format is controlled via
global variable ndn::WireFormat:

    Config::SetGlobal ("ndn::WireFormat", IntegerValue (ndn::Wire::WIRE_FORMAT_CCNB));

or

    ./waf --run="... --ndn::WireFormat=1

Refs #1008 (http://redmine.named-data.net/issues/1008)
model: Another major change: switching to NDN.cxx API for ndn::Name

NDN.cxx code is almost exactly the same, with minor NS-3 specific customizations

Refs #1011 (http://redmine.named-data.net/issues/1011)
model: Bug fixes and small API change in ndn.cxx

ndn.cxx API need to be back-ported back, since it has important and not
very obvious problem.

Refs #1011 (http://redmine.named-data.net/issues/1011)
model: A couple of tricks and fixes in NDN.cxx, so it will play nice with python bindings

Refs #1011 (http://redmine.named-data.net/issues/1011)