Mini refactor and test network util

### Changelog
* Mini module refactor.
* Add tests for all functions not requiring network access.

### Note
Why do we need a separate `get_my_ip` function? Doesn't `stun.get_ip_info` give us all we need?
The `peer` cannot be used by ZMQ, but the `URL` can. I don't know how to make it explicit.