Added SNI support. see #49.

Should I add an option to disable tlsext?
Merge branch 'md5-sess' of https://github.com/wimm/httpclient into wimm-md5-sess
Updated old Cookie test: lifetime expired...
Merge branch 'wimm-md5-sess'
Added test for MD5-sess
add gssapi auth support.
Adding local_sockaddr
Getting rid of sockaddr/bind attempt, replacing with local_host and local_port
Rename 'local_bind' to 'socket_local'

Add simple test.
Ignore *.rbc for Rubinius.
Checks only authenticators that are set

We want the ability to only set certain kinds of authenticators if we
already know what they will accept.

Explanation:
1) We know that one of our remote systems *anly* accepts BasicAuth
2) We have limited, expensive bandwidth and our messages always contain a
large attachment
3) If we use the standard HttpClient, which goes through the whole gamut of
authenticators... it will continually send this large attachment multiple
times... using authenticators that we *already know* will be refused, thus
wasting our bandwidth and time.

Therefore, we want to restrict the authenticator set to only the known
authenticators... when we *already know* the authentication schemes that the
remote system accepts.

The way I'e done this is quite simple - and the ddefault behaviour of the
system will remain the same.

When you "set" the authenticator, it marks it as usable.
If you use the default "set_auth" method - it will mark all authenticators
as usable, just as it curently does.

*but* if you already know the authentication method... then only set the
methods you will use...

For example, if you know that it will only accept basic auth, and negotiate
auth, use:

@client = HTTPClient::WWWauth.new
@client.basic_auth.set_auth('myuser','mypass')
@client.negotiate_auth.set_auth('myuser','mypass')

More-complicated authenticators may require other params, or even no params
eg the following doesn't actually *need* the given params...
@client.sspi_negotiate_auth.set_auth('uri.com','myuser','mypass')

This change frees us up to use the nice fallback negotiation if we need it,
but does not force us to go through the waterfall process if it's *not*
needed.

Having options is a Good Thing.
use *args for set that doesn't need args

We don't actually *use* the arguments on these methods... so allow us to
call them without many args if we don't realy need to.

This lets us use it as:

@client.sspi_negotiate_auth.set('foo')
instead of insisting on three useless arguments.
Add HTTPOnly cookie support
Merge remote branch 'nbrosnahan/master'
Merge remote branch 'zenchild/master'
Recover authentication features for OAuth and Negotiate.

Auth#set? introduced at e3da6870f5468c744bfc broke OAuth and Negotiate.
These authenticators must be checked against URI given so we cannot skip
these in response_filter.
rescue IOError for rather old JRuby versions.

At least jruby 1.5.1 could raise IOError per user's report.
close #25.
Merge commit 'aa85d60a02aceefd7f04'
NTLM logon to exchange Web Services

Merged the core part of this commit:
https://github.com/mccraigmccraig/httpclient/commit/23b50224f5687b8a299b5120c63a0b7bd4d31101
Auth#debug_dev= looks good but I skip it this time to minimize the
change.
Add doc for HTTPClient#socket_local.