p2p: rework protocol API
p2p: fix issues found during review
p2p: disable failing Server tests for now
p2p: API cleanup and PoC 7 compatibility

Whoa, one more big commit. I didn't manage to untangle the
changes while working towards compatibility.
rlp: add Stream.Reset and accept any reader (for p2p)
rlp: add NewListStream (for p2p)
p2p: use package rlp
p2p: use package rlp for baseProtocol
rlp: include target type in decoder error messages
p2p: remove Msg.Value and MsgLoop
p2p: make Disconnect not hang for peers created with NewPeer
p2p: add test for NewPeer
Merge branch 'feature/p2p-protocol-interface' of https://github.com/fjl/go-ethereum into fjl-feature/p2p-protocol-interface
Merge branch 'fjl-feature/p2p-protocol-interface' into poc8