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?
how many IPs does it take to complete one line of code?
![image](https://cloud.githubusercontent.com/assets/45482/4800043/15dfca3e-5e22-11e4-8e3d-8909c5482fbf.png)