doc: improve dns module's documentation

Make the difference between dns.lookup and other functions even clearer.
@saghul I agree with you, but my original concern was that by mentioning that `dns.lookup` == `getaddrinfo` in the introduction we would expose too much of the implementation's details to everyone right from the start. For instance, if we wanted to be precise for Windows users, we would need to mention `GetAddrInfoW` in addition to `getaddrinfo` (although they probably behave in a very similar way).

Instead, I thought that describing the general semantics and the concept of `dns.lookup` in the introduction would be sufficient, and would work for any implementation, even if these implementations change in the future. People interested in the implementation details could still consult the section that is reserved for that.

@sam-github The goal of this PR is exactly to address the problem you mentioned.