rlp: move decoder type switch to decode.go
rlp: remove support for signed integer types

There is no agreement on how to encode negative integers
across implementations. cpp-ethereum doesn't support them either.
rlp: fix panic in decodeList on go 1.4+

The documentation for reflect.Value.Index states that it will
panic for out-of-bounds indices. Since go 1.4, it actually panics.
rlp: remove dead code
rlp: display decoder target type in more error messages

Decode error messages now say "expected input list for foo.MyStruct"
instead of just "expected List".
Merge pull request #203 from fjl/rlp-fixes

RLP: remove signed integer support and other fixes
p2p: fix decoding of disconnect reason (fixes #200)
p2p: improve and test eofSignal
p2p: add MsgPipe for protocol testing
p2p: use an error type for disconnect requests

Test-tastic.
p2p: add test for base protocol disconnect