Initial commit of a node Peer
Using typeclasses for defining the Peer behavior
Letting the user decode how to run the Peer monad stack
Adding PeerManager and SPVNode
Simplifying PeerManager
Each node layer now manages its own state monad
Adding functionality to the SPVNode
Adding publishTx and processRescan to SPVNode
Adding functions processInv, processTx and downloadBlocks to SPVNode
Adding function spvPeerMerkleBlock to the SPVNode
Inserting genesis block hash in the saved wallet hashes after a rescan
Making all data type fields strict
Adding strictness annotations on HeaderChain types
Removing the event channel from the SPVNode and exposing class functions for tx and block import
Fix warnings
Removing outdated examples
Removing data-default dependency
Merge pull request #116 from plaprade/peer

Peer, PeerManager and SPVNode