Streaming input

this PR provides support for using data from file-like objects (e.g. streams, sockets, etc) as the contents of the zip entries.