change local IP test host to google.com for reliability
add Basic auth for HTTP proxies
refactor SSL initiation to separate subroutine
refactor proxy connection code
refactor Basic auth header generation
Add support for CONNECT and https proxies
update cpanfile
Added support for persistent connections

If keep_alive => 1, then HTTP::Tiny will try to reuse the previous socket,
but only for the same scheme/host/port/timeout. Any other changes will
use a new socket

It won't reuse the connection if the content-length header is missing or
incorrect.

If r/w attributes are modified, the cached handle will also be cleared.
Only persist 1.1 connections and clarify persist logic

HTTP::Tiny is an HTTP/1.1 client, so it doesn't need to support
HTTP/1.0 response headers.

The changes to the logic make it clearer that the condition for
persistance are having a known message length, as provided by
8.1.2.1 in the spec.
use keep_alive by default
Keep connection if some attributes are modified

Some attributes aren't connection related so we can keep persistence
for them.

Also documents keep alive behavior better.
Avoid blocking SSL socket on can_read

We need to check 'pending' before checking the underlying socket.
stop redefined warnings in cookie jar tests
only proxy if we have a proxy for the request scheme
Avoid multiple small writes when sending the request as when
keep_alive is enabled you can fall foul of nagle.