refresh example config
goimports
add whitelist flag
Fix typo in example config and keep default values consistent

[ci skip]
Verbose mem stats are way too verbose to be a default

[ci skip]
Add pretty stats param and refactor error handling
More refactoring of error handling
Disable whitelist by default
Better logging
Add logging for startup failure
move whitelist into cfg
add error checking to loading whitelist
Introduce PeerKey

PeerKeys are used to prevent overwriting of peers which want to announce
for both IPv4 and IPv6.
Add missing copyright headers
Extract percentile implementation
Only keep one IP in the Peer type
Add a comment explaining why Peer.IP is unambiguous
Initial refactor to store more in the Announce
Remove user snatches (should be handled by backend)
Fix snatched logic to read seeder list before updating it

Refactor more