identify: only store _reported_ multiaddrs
identify: only store _reported_ multiaddrs

We still tell the remote host about the observed addr but we don't store it.
That way, we give them a chance to decide if they want to actually use and
advertise it.

Ideally, we'd distinguish between local information and signed routing
information but we don't do that yet.

This should reduce the address explosion issue where peers learn about
multiple (bad) observed addresses for the same peer. It should also give peers
more control over how they can be dialed.

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