always set the peer if the peer scope is null
always set the peer if the peer scope is null

Removes the very ugly contract of "if you know the peer you have set it" and makes the
code robust against upstream bugz.

ipfs/go-libp2p,libp2p/go-libp2p,libp2p/go-libp2p