chore: cleanup address parsing
chore: cleanup address parsing

* Use SplitLast to avoid allocating too much.
* Avoid converting to/from strings when working with multiaddrs.

libp2p/go-libp2p,libp2p/go-libp2p