There is now a global PeerStore structure (instead of having one for libp2p, one for waku, etc)
The user can create custom books for new types easily
Also add a pruning system to remove dead peers
* Connect & Peer event handlers now receive a peerinfo
* small peerstore refacto
* implement peerstore in switch
* changed PeerStore to final ref object
* revert libp2p/builders.nim
* adding raises defect across the codebase
* use unittest2
* add windows deps caching
* update mingw link
* die on failed peerinfo initialization
* use result.expect instead of get
* use expect more consistently and rework inits
* use expect more consistently
* throw on missing public key
* remove unused closure annotation
* merge master
* Address Book POC implementation (#499)
* Address Book POC implementation
* Feat/peerstore impl (#505)
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>