Fixed ntlm domain authentication
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
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.
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.
Version bump to 2.1.7

Updated README.txt, too.
don't specify domain in NTLM Type1 message if not supplied
Version bump to 2.1.7.1.
Use @socket_local iif user specified it.

Some environment might not handle '0.0.0.0'.
Version bump to 2.1.7.2
Add shortcut methods.

 - Add HTTPClient#cookies as an alias of #cookie_manager.cookies.

 - Rename HTTPClient::HTTP::Message#header to #http_header, then add
   #header as an alias of #http_header. It's just an implementation change.

 - [INCOMPAT] Rename HTTPClient::HTTP::Message#body to #http_body, then
   add #body as an alias of #content. It's incompatible change but other
   Ruby http clients use 'body' to get a String so I made this change.
   Users who are using req.body and/or res.body should follow this
   change. (req.http_body and res.http_body)
Allow keyword style argument for HTTPClient#get, post, etc.

Introduced keywords are: :body, :query, and :header.
You can write
  HTTPClient.get(uri, :header => {'X-custom' => '1'})
instead of;
  HTTPClient.get(uri, nil, {'X-custom' => '1'})
Reenable keep-alive for chunked response.

This feature was disabled by c206b687952e1ad3e20c20e69bdbd1a9cb38609e at
2008-12-09. I should have written a test for keep-alive. Now I added it.
Thanks Takahiro Nishimura(@dr_taka_n) for finding this bug.