Package p2p (PoC7)

Here we go. That took a bit longer than expected.
The tests could be better, but we can improve them while integrating PoC 8 changes.

@zelig PTAL
This is still part of #155.
use `self` rather than an undescriptive variable name (such as `bp`). This is found in more places. Please update.