In CouchDB's CI the small_pipeline test intermittently fails with
something like:
```
in function ibrowse_tests:'-small_pipeline/0-fun-5-'/1 (test/ibrowse_tests.erl, line 150)
{line,150},
{expression,"Counts"},
{expected,"\n\n\n\n\n\n\n\n\n\n"},
{value,"\n\n\n\n\n\n\n\n\t\n"}]}
```
Increasing the timeout a bit seems to help in local tests.
When worker processes are part of an external connection pool it may make sense
to rely on automatic cleanup based on links. Since by default worker processes
trap exits, linked proceses would fail to terminate the ibrowse worker and
instead it would generate an '{'EXIT', Pid, Reason}' which is handled in
handle_info/2 with a warning to stdout.
Add a new option to allow users to control worker process link behavior via an
ibrowse config parameter. The default stays the same (=true).
In cases where no proxy is configured, first establishing a TCP
connection and then upgrading the connection to TLS can cause errors
on some TLS servers.
This commit splits the logic in such a way that configurations without
proxies (presumably the majority!) will connect directly using
`ssl:connect`, whilst proxy connections will still establish a socket
first and then upgrade.
This fixes#160.
The previously used inet:gethostbyname/1 would use IPv6 only if
inet_db:res_option(inet6) returned true, but the default resolver
setting for inet6 is false.
With this option, the process given by stream_to will get a message with chunk data each fully received chunk; stream_chunk_size is set to infinity for this. This is useful for certain applications that stream live data with each unit being represented by a single chunk; one example is CouchDB's continuous changes feed.