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.
Fixed bad static pointer cast in Tunnel::Manager.
Fixed bug in BuildResponseRecord.
h/t psi.
Refactored SearchState: using a std::vector instead of a std::queue instead.
SearchState has also been given more functionality.
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.
Merge branch 'dht'
Updated TODO.
make sqlite3cc use std::shared_ptr
Made SearchState thread safe to fix a bug (segfault).
See also http://www.justsoftwaresolutions.co.uk/threading/thread-safe-copy-constructors.html
for explanation of the changes (EinMByte).
Merge branch 'master' of http://git.repo.i2p/r/i2pcpp into gitrepo-master
Completed thread safety of SearchState.
More changes to SearchState.
Fixed bug with OMD (mutex wasn't being locked properly).
Finally fixed DHT bug (problem was a long standing bug with SearchManager, not with SearchState).
More changes to SearchState.
Merge branch 'master' of http://git.repo.i2p/r/i2pcpp into gitrepo-master
Segfault fixed (hopefully) + tests.
Fixed some DHT tests.
Added 2 tests for double invocation of addAlternate(rh).
Merge branch 'dhtfix' (should fix segfault)
Merge branch 'master' of http://git.repo.i2p/r/i2pcpp into gitrepo-master