lhttpc:request: Document max_connections and connection_timeout options.
Fixes to lhttpc_types.hrl options type from anha0825.

https://github.com/ferd/lhttpc/pull/2
lhttpc_client:request: Fix spec.
lhttpc_lib:split_host, lhttpc_lib:split_port: Accept URLs with '?' after port.

Previously, a URL such as "http://example.com?query" or
"http://example.com:80?query" would fail because there was no '/' before
the query.  Now accept a '?' in addition to a '/' as a terminator for
the host and port part of the URL.
lhttpc_lb: Fix some port() vs port_number() type confusion.
lhttpc_lb: Fix misuse of port() type.

Define a new lhttpc_lb:socket() type as a union of the gen_tcp:socket()
and ssl:sslsocket() types.
Makefile: Make sure beam files are up to date before running dialyzer.
Disable invalid failing tests.

The connection_timeout and connection_count tests uses interfaces that
don't exist in the lhttpc_lb implementation.

The suspended_manager test seems to assume a single connection manager
instead of a per-host/port/ssl manager.  I'm not sure it makes sense in
the current design.  Why would we want to suspend the manager?
lhttpc_lb: Add connection_count/3 function.

The lhttpc_lb:connection_count{Host, Port, Ssl} function returns the
number of active connections and the number of idle connections for
Host/Port/Ssl.

With this new function we can now reinstate the connection_timeout test.
lhttpc_sup.erl: Fix gen_server init/1 specs for dialyzer.
lhttpc:bad_options: Reorganize code to placate dialyzer.

Previously dialyzer would fail with a error like:

lhttpc.erl:591: The call
lhttpc:verify_options(Options::any(),NewErrors::[any(),...]) will never
return since it differs in the 2nd argument from the success typing
arguments: (any(),[])

This rewrite of the verify_options error case does not trigger this
dialyzer warning.
Remove unused lhttpc_lb:checkin/3 function.
lhttpc_tests: Rename test URLs to match test name.
lhttpc_dns: New module for DNS caching.

The Erlang DNS client is inefficient, because it requires a call to a
port program inet_gethost, and thus an OS context switch, for each
lookup.  This change adds a cache on the DNS lookups that respects the
DNS TTL.

    otp/lib/kernel/src/inet_gethost_native.erl

Bugs: the current implementation never evicts old entries; it only
grows.
Add 'dns_cache' application env (default false) to control whether lhttpc_dns caching is used.

The default dns_cache value is false.  You can override this by
including "{dns_cache, true}" in lhttpc's env setting in your sys.config
file or by setting "-lhttpc dns_cache true" on the Erlang command line.
Add 'dns_cache_min_cache_seconds' env.
lhttpc_dns: Prevent unbounded growth of dns_cache ets table.
lhttpc_dns: Track DNS lookup success and failure counts.
lhttpc_dns: Filter cname entries.

The inet_res:resolve function can return CNAME entries along with the A
address entries in the results.  Filter them out.
Update CHANGELOG and bump version to 1.3.0.