Bulk Transport Descriptors
--------------------------

Bulk transfers are handled somewhat similarly to the Coda side effect
descriptors.  An client request session that needs bulk transport
creates a descriptor (Lento::Bulk::Desc).  These descriptors can
describe bulk transfer from client to server or vice versa, and the
source and destination can be defined as files or strings.  Several
future extensions are envisaged, such as descriptors that can exploit
sendfile and rsync methods.

For clarity the bulk descriptor uses the terms sink and source to
describe the originating and terminating endpoint of the bulk
data. When the descriptor has been created, the client calls the setup
method for the source (Lento::Bulk::Source) or sink
(Lento::Bulk::Sink) classes, passing in the descriptor to setup.

The client session now sends its request to the server with enough
information in the request to allow the server request handler to
create a descriptor itself.  The server will setup a Sink or Source
handler.  

The bulk handlers act as follows.  The sink just waits for DAT and EOD
packets which are delivered as Events.  In case the sink is on the
server, it needs to send a START packet to the client to indicate to
the source that the sink is ready to handle incoming data.

The source handler is slightly more involved.


