DHT::Kademlia::find now has an overload to return only a given amount of entries.
Typedef DHT::Kademlia::value_type now is an alias for StaticByteArray<32> instead of
RouterHash.
Created i2pcpp::DHT::DHTFacade. Modified RouterContext, Router and OMD accordingly.
Added RouterContext::getIoService() to avoid constructors with many arguments. Other classes (eg. IMD) must still be refactored.
Fixed up some whitespaces and made m_dht a unique_ptr instead of a
shared_ptr.
Implemented negative lookup cache (NLC). Made some minor changes to SearchManager and SearchState.
Merge branch 'master' into dht

Conflicts:
	lib/i2p/RouterContext.cpp
	lib/i2p/RouterContext.h
	lib/i2p/dht/SearchManager.cpp
	lib/i2p/dht/SearchManager.h
	src/Router.cpp
The io_service must be passed directly to the ctors, because calling
getIoService() in the initializer list is bad (the RouterContext isn't
initialized fully at that time). h/t psi.

Conflicts:
	lib/i2p/RouterContext.cpp
	lib/i2p/dht/SearchManager.cpp
Fixed bad static pointer cast in Tunnel::Manager.
Fixed bug in BuildResponseRecord.
h/t psi.
Removed DHTFacade's dependence on RouterContext, which isn't fully
constructed when DHTFacade tries to use it. h/t psi.
Merge branch 'dht'

Conflicts:
	lib/i2p/RouterContext.cpp
	lib/i2p/dht/SearchManager.cpp
	lib/i2p/dht/SearchManager.h

The DHT code needs testing!
Updated TODO.