For performing DNS resolution explicitly through the network-socket
user API.
This interface does not require implementation changes and can rely
entirely on the dns query library in the network-socket API.
Internal API changes:
dnsQuery -> nsapi_dns_query
Additionally restructured query code to emit/parse network structures
in stream form to hopefully document the underlying structure more
explicitly.
Fixes issue #2399 by optionally returning a SocketAddress from
TCPServer::accept().
This entails changes to underlying NetworkStack and nsapi. This
commit deals only with lwip and higher level APIs; other users of
NetworkStack and nsapi may be affected. Currently lwip is the only
in-tree user of nsapi.