* Impl Clone for SwarmController and remove 'static
* Implement Kademlia
* Implement ConnectionReuse correctly
* Implement ConnectionReuse correctly
* Add some tests and fixes
* Remove useless boolean in active_connections
* Correctly run tests
* Optimize the processing
* Rustfmt on libp2p-kad
* Improve Kademlia example
* Next incoming is now in two steps
* Some work
* Remove log
* Fix dialing a node even if we already have a connection
* Add a proper PeerId to Peerstore
* Turn identify into a transport layer
* Expose the dialed multiaddress
* Add identified nodes to the peerstore
* Allow configuring the TTL of the addresses
* Split identify in two modules
* Some comments and tweaks
* Run rustfmt
* More work
* Add test and bugfix
* Fix everything
* Start transition to new identify system
* More work
* Minor style
* Start implementation of Kademlia server upgrade
* Continue implementing the Kademlia server
* Start reimplementing high-level kademlia code
* Continue reimplementing high-level code
* More work
* More work
* More work
* Fix wrong address reported when dialing
* Make it work
* Remove cluster_level field everywhere
* Fix bug in varint-rs when encoding
* More work
* More work
* More work
* More work
* More work
* Bugfix
* More work
* Implement ping
* Style in kademlia_handler
* More work
* Better error handling in query.rs
* More work
* More work
* More work
* Debug impls
* Some cleanup in swarm
* More work
* Clean up changes in swarm
* Unpublish the kbucket module
* Fix examples and some warnings
* Fix websocket browser code
* Rustfmt on libp2p-kad
* Kad initialization process
* Add logging to the example
* Fix concerns
* Fix style