intern protocol names
intern protocol names

Ideally, we'd store a bitmap. But we'll have to think through how we want that
to play out with the datastore-backed peerstore (maybe move the `*Protocols`
methods down to the backend implementation?).

libp2p/go-libp2p,libp2p/go-libp2p