ares_getnameinfo.3: there is no ares_getaddrinfo
Continue loop if space for hostname not large enough

When attempting to build a search domain from the local hostname
(used as a fallback when no other methods have given a search
domain), the code doubles the buffer size on each loop iteration.

However, the loop previously had a WHILE_FALSE terminator so the continue
statement exited the loop rather than going round again.
Destroy options if ares_save_options fails

It's possible that, if ares_save_options failed, the opts structure
would contain some allocated memory. Calling ares_destroy_options in
this case is safe, because ares_save_options zeroes out the memory
initially.
ares__read_line: free buf on realloc failure