updated multiaddr
swarm + net: add explicit listen addresses
swarm + handshake: better observed addr check

The check needed knowledge of the _listen_ addresses,
not just the interface addresses. Also, the handshake now
sends out all the addresses we accumulate about ourselves.
(this may be bad in the long run, but useful now to test)
handshake: log whether new addr observed
fix(exchange) add context to DialPeer
fix(net) pass contexts to dial peer
doc(swarm)
fix(swarm) pass context to Dial

@jbenet In swarm.Dial, the swarm pass the callers context into the
internal dialer. Are there any side-effects to changing the behavior?