Peer, PeerManager and SPVNode

This pull requests adds a generic Peer and PeerManager module for connecting with other Bitcoin nodes. It also implements a simple SPV node that can deliver transactions and merkle blocks to a user application.