Add support for HTTP basic auth

Also enhanced the lhttpc_lib:parse_url/1 to parse
credentials as specified in RFC1738 - before if user
credentials were specified, this function would consider
that what follows the first : is the port and not a
password.
Add support for IPv6

If an URL targets an IPv6 host, lhttpc will now pass the
inet6 option to the socket automatically.
This also fixes 2 bugs:

1) in lhttpc_lib:parse_url/1 when the host component is an IPv6
   address literal - the parser thinks that what follows the
   first : is a port number;

2) for IPv6 address literals, the Host header must surround those
   literals in square brackets (RFC2732)
Add support for proxies

This change adds support for HTTP proxies that allow the HTTP
CONNECT method tunneling [1, 2]. Tested against Squid 3.1.15.

[1] http://muffin.doit.org/docs/rfc/tunneling_ssl.html
[2] http://tools.ietf.org/html/rfc2817
Add connection limit to lhttpc_manager

This allows the connection pool (lhttpc_manager) to
block clients, when they request a socket, when the
current number of open sockets/connection reaches a
certain (configurable) threshold.
Add test connection_timeout to lhttpc_manager_tests

This test verifies that the lhttpc_manager pool closes sockets
if they are not used after a configurable period of time.
Allow different clients to use different pools

This change allows different clients to use different connection
pools (lhttpc_manager instances). This is useful when we have
several different applications or process groups which are
independent and shouldn't share the same pool.
It also reduces the overhead of messaging a single centralized pool.
Add eunit verbose option to rebar.config

This helps better identifying which tests fail and
give a notion of progress/staleness.
Merge pull request #7 from RumataEstor/3e7b230d640e824b273e331068358ed81c77f7a3

typo fix
Merge pull request #5 from fdmanana/contributions

New features and enhancements
Headers can be specified by atoms, lists or binaries
Update CHANGELOG with latest changes
Merge pull request #9 from fdmanana/master

Update CHANGELOG
Simpler error handling

On error we now always get a response of the form
{error, Reason} instead of either getting such a
response or an exit (which is undocumented).
This simplifies code which wants to deal with all
possible errors, for example:

    try
        case lhttpc:send_body_part(UploadState, BodyPart, Timeout) of
        {ok, UploadState2} ->
            loop(UpfateState2, Timeout);
        {error, Reason} ->
            handle_error(Reason)
         end
     catch exit:ExitReason ->
         handle_error(ExitReason)
     end

Would become simply:

    case lhttpc:send_body_part(UploadState, BodyPart, Timeout) of
    {ok, UploadState2} ->
        loop(UpfateState2, Timeout);
    {error, Reason} ->
        handle_error(Reason)
    end
Fix crash when pool option is a process name

The gen_tcp:controlling_process/2 and ssl:controlling_process/2
functions only accept PIDs, so if the pool is a registered process
name (atom) we need to get its PID.
Merge pull request #11 from fdmanana/controlling_socket_pid_fix

Fix crash when pool option is a process name
Merge pull request #10 from fdmanana/master

Simpler error handling for lhttpc users
Fix dialyzer warnings

Also added missing possible return values for the
request/4,5,6,9 functions. Those were the values
that can be returned when the partial_download and
partial_upload options are used.
Simpler and consistent error handling

Don't raise an error if the http client process died
with a reason other than 'timeout'. Instead return a
term with the shape {error, any()}.
This was missed in the following pull request:

https://github.com/esl/lhttpc/pull/10
Merge pull request #12 from fdmanana/master

Fix dialyzer warnings
.DS_Store ignored