NetAddr

Started to implement `NetAddr` -- previously thought it would be possible to just replace `NetAddr` with a 2-tuple containing an `ipaddress.IPv4Address` and an `int` for the port, but makes more sense to just replicate `NetAddr`.

No rush to merge this -- can wait until NetAddr is actually finished.