This introduces CNetAddr and CService, respectively wrapping an (IPv6) address and an IP+port combination. This functionality used to be part of CAddress, which also contains network flags and connection attempt information. These extra fields are however not always necessary.
These classes, along with logic for creating connections and doing name lookups, are moved to netbase.{h,cpp}, which does not depend on headers.h.
Furthermore, CNetAddr is completely IPv6-ready, though IPv6 functionality is not yet enabled for the application itself.