Feature: upstream dynamic resolve

This is version 1, the "imperfect" version.

Introduces a new directive with two parameters into upstream context:

Directive:
    *) dynamic_resolve: enables dynamic resolving functionality on an upstream.

Parameters:
    *) fail_timeout=time, specifies how long tengine will not launch
       a dns query if the dns server is down.
    *) fallback=action, specifies what action to take if the dns server is
       considered as "down".

Support:
    *) use the first result of a dns response
    *) fail_timeout
    *) fallback action, but the action "stale" is limited to use what tengine gets
       when it parses the configuration

Not Support:
    *) all results from a dns response
    *) ipv6 address
    *) using stale dns data

All "Not support" stuff are now supported in "perfect" version, which
will be released after tengine is upgraded to original nginx 1.6.x
branch.

Test cases are included.

Signed-off-by: Paul Yang(InfoHunter) <paulyang.inf@gmail.com>
Merge pull request #495 from InfoHunter/dyn-dns

Feature: upstream dynamic resolve