TODOs for HTTP::Async

  * Add ability to pass in a file handle that will be used to store the
    content in. Aimed at people downloading large files that would otherwise
    fill up the memory. Could be done so that downloads greater than a certain
    size get sent to file rather than to memory. How to return this in the
    HTTP::Response though.

  * Do what is needed to get CPANTS tests to pass / run.

  * Make sending non blocking - both the data and the initial DNS lookup.

  * Integrate the changes from Egor - set alarm to catch connection timeout.

  * Change max_redirects to max_redirect to be consistent with LWP::UserAgent

  * Add a max_content_size that will break connections if the content is to
    big - default is no limit.

  * Switch to using Test::Class so that the tests are faster as they don't
    spend so much time starting and stopping the test server(s).

  * Change tests so that the port used is chosen so as not to conflict with a
    port that is already in use.

  * Change the user agent so that if it is not set in the request passed in then
    it defaults to 'HTTP::Async vx.xx' or some such. Should also be possible to
    set it in the opts or in the HTTP::Request.

  * Add 'info' sub that can be linked to SIGINFO to provide a summary of what is
    going on eg "print $async->info( 'terse' )".

  * Add logic to TestServer::new() to choose a different port when it finds the
    one it wants is already in use. Related: make tests which refer to port
    numbers outside of their call to TestServer::new() get them from the
    TestServer object instead of hard-coding them.
