code-style: prefer BOOST_ASSERT and static_assert

refs #2132

Change-Id: I203f22148fd52adcb611e8a219db18c0a8b9f2ef
security: get KeyDigest from PublicKey.

Change-Id: Ibb7cf0aba262dbb80d5ea1d2da02318963c0f417
Refs: #1964
code-style: add rule for lambda expression

refs #2114

Change-Id: I2f92b0abcf5d3a0a7d8ef95cd957a87b6e3a682a
base: ensure Element::Error inherits from tlv::Error

Adding static asserts to ensure (Name|name::Component|Interest|
Selectors|Exclude|KeyLocator|Data|MetaInfo|Signature|SignatureInfo)
::Error are subclasses of tlv::Error.

This commit also adds WireEncodable and WireDecodable concept checks
to Name,name::Component,Interest,Selectors,Exclude,KeyLocator,Data,
MetaInfo,SignatureInfo types.

This commit also moves definition of Selectors method into .cpp.

refs #1983

Change-Id: I15220b93437d4a624ae09df66defc91ceac2386c
build: disable assertions in release builds

refs #2135

Change-Id: I544725f2274d0f15b55a0c8de3acb2e801a2c993
meta-info: producer generated NACK

This feature is experimental, and not yet defined in NDN-TLV spec.

refs #2111

Change-Id: I93c77aedb14ba40c6ba5e3148ba355c436af6ac1
encoding: move MAX_NDN_PACKET_SIZE constant

refs #2099

Change-Id: Ia52e32084ee7382c55d6ccc7ce71812c1854ba7f
util: use C++11 features in ethernet::Address class.

Change-Id: I2740575c26d485ac13b1688cb8a74426145d8bae
security: Make Face optional in Validator

Change-Id: I75760e358878d8031439dd33a8200e21c69db3f8
Refs: #2124
name: Add std::hash<Name> to support unordered_map container

Change-Id: I1edda483340fc5a891b6ae3a9cc4baf39b859621
Refs: #2147
util: rewrite EventEmitter with C++11 features

This commit does not enhance the functionality of EventEmitter.

refs #2116

Change-Id: Iff1d5ae9fbd8e575773d71c7a93339045fcb8bc4
code-style: correct section 1 heading

Section 1 doesn't contain file naming rule, so its heading shall
be just "Code layout".

refs #2119

Change-Id: I204bdcd8443674b2fed7a8f4fd0345bdfa1ea47a
face: delete deprecated shared_ptr<io_service> constructor and getter

refs #2097

Change-Id: I98c9875f7a8bb4decf8e7a28ee3c5c60d163f7b5
encoding: delete deprecated tlv::ConentType

refs #2129

Change-Id: Id159f80c516ef1bd1a87b3c71c26929d7007970d
name: Add support for ImplicitSha256DigestComponent

This support includes the following new API functions:

- name::Component::isImplicitSha256Digest()
- name::Component::fromImplicitSha256Digest(...)
- Name::appendImplicitSha256Digest(...)
- Updated toUri()/fromUri(...) to support "sha256digest=..." URI
  representation of the ImplicitSha256Digest component

Change-Id: I756c4b94196cf031da98b5689bd60630533dfeb3
Refs: #1640, #2088
data: Enable use of ImplicitSha256Digest component in Data::getFullName

Change-Id: Ib02af6e9c40f447a1b8ab7418fecae82169ceeba
Refs: #1640
interest: Updating Interest::matchesData to use ImplicitSha256DigestComponent

Change-Id: I36660cdacb73efd7f724317b247c8a07578b6fdf
Refs: #1640
ci: Build in debug mode for code coverage analysis

Change-Id: I3312cdf0da0a29638bb0e5223e081a805600ba6c
Refs: #2141
code-style: auto type specifier

refs #2115

Change-Id: Ie07c8d1e3567d9b1ad395c5a74fb7bcb8cf718eb
common.hpp: avoid conflict between std::placeholders and Boost placeholders

refs #2109

Change-Id: Ia231500e6adabd10179db4aeeaf799a28fee07dc