Better args processing
Merge pull request #139 from cesanta/http_client

Better args processing for examples/http_client
Add ns_dns_resolve DNS client
Implement local resolution in ns_resolve_async

When a name is found in `/etc/hosts`, ns_resolve_async will
invoke the callback with a syntetic dns message.
Add lcov ignores

This change aims at reducing our coverage blindness.

It's impractical to cover some code paths, for example
debugging paths (hexdump) malloc failures and similar.
Comments tidied up
Merge pull request #144 from cesanta/comments

Comments tidied up
Merge pull request #143 from cesanta/lcov

Add lcov ignores
Merge pull request #140 from cesanta/dns_client

Add ns_dns_resolve DNS client
Merge pull request #141 from cesanta/parse_hosts

Implement local resolution in ns_resolve_async
Improved doc for build options
Merge pull request #146 from cesanta/util

Improved doc for build options
Let ns_resolve_async also parse literal addresses
Merge pull request #142 from cesanta/use_async_resolve

Let ns_resolve_async also parse literal addresses
Renamed cloud -> apps
Merge pull request #147 from cesanta/cloud

Renamed cloud -> apps
Transformed ns_parse_address to be async

And transitively `ns_connect` is now async as well.
`ns_bind` is still sync although it uses internally the async ns_parse_address

Since `ns_connect` doesn't know whether the name resolution succeeded,
nor whether the connection is ipv4 or ipv6, it cannot create a socket
before returning. Now `ns_connect` creates an empty connection even before
opening a socket and sets a `NSF_RESOLVING` flag. If name resolution fails
or any other error where the previous implementation would have returned a
NULL, now it sets the NSF_BAD_CONNECTION flag potentially *asynchronously*.
Otherwise the connection is added to the manager and the flag cleared.

The user can detect this flag in her event handler.
Our unit tests check this flag synchronously when testing connections that
don't require name resolutions. We should document this feature so that users
know when they can assume that error propagation is sync or async.

`ns_bind` is similar to `ns_connection` but since it's always sync, it can
check whether the connection is bad before returning and will return a NULL
connection for ease of use.
Merge pull request #145 from cesanta/use_async_resolve_2

Transformed ns_parse_address to be async
Added MQTT/DNS to the list of features
Merge pull request #149 from cesanta/cloud

Added MQTT/DNS to the list of features