
Provides a Q promise API for HTTP requests and responses.  This should
resemble JSGI and its hypothetical inverse, but I haven't pored
through the specification to ensure this.

The API

    Server(respond(request):Response*)
        listen(port:Number):Undefined*
        stop():Undefined*

    Client(port:Number, host:String)
        request(request:Request):Response*

    request(request:Request):Response*

    Request:Object

        method || "GET"
        host:String
        port:Number
        headers:Object
        body*
            forEach(write(String*)):Undefined*
        connection:NodeSocketConnection

    Response:Object

        status:Number
        headers:Object
        body*
            forEach(write(String*)):Undefined*
        onClose:Function?

Conventions

    `*` indicates that a value may be a promise
    `?` indicates optional
    `||` indicates a default

Copyright 2009, 2010 Kristopher Michael Kowal
MIT License (enclosed)

