this allows more mature usage of the bloom filter.
Make the Peer object be owned by a shared pointer.
We reuse the NetworkManager lower level code in order to connect to the Bitcoin P2P network. This implements the basics for anyone wanting to be a player on this network.