Refactoring of (head|get)_async

As same as other methods.
Add :force_basic_auth config

Generally HTTP client must send Authorization header after it gets 401
error from server from security reason. But in some situation (e.g.
API client) you might want to send Authorization from the beginning.

You can turn on/off force_basic_auth flag for sending Authorization
header from the beginning. (Of cource, if a request URI matches with
the URI you set in set_auth method)

Syntax:
  HTTPClient.new(:force_basic_auth => true)
or
  c = HTTPClient.new
  c.force_basic_auth = true

Closes #166, #179, #181.