sftpv3: first go at sftp v3 support
sftpv3: lint
sftpv3: fix version packet
sftpv3: set module exports and pass on some underlying stream events
sftpv3: fix outbound packet structure (missing packet_length)
sftpv3: move most packet_length decrementing in parser to respective read* functions
sftpv3: add end method for closing the underlying channel
sftpv3: fix read so it reuses the passed in buffer properly
sftpv3: refine user-facing API a bit
sftpv3: remove unused code
sftpv3: first go at createReadStream and createWriteStream
sftpv3: fix ReadStream and WriteStream
use if/ternary operator instead of Math.min

Math.min is very slow compared to if/ternary operator and this can make a different in hot code paths.
sftpv3: match node's fs.write behavior more closely
sftpv3: fix missing cb parameter on ReadStream.destroy
sftpv3: misc optimizations
sftpv3: close file handle on error for read and write streams
sftpv3: fix function signature
fix 'this' pointer causing a global leak.
pass remote file position back to callback for read()

this allows you to (for example) use a single callback for writing (to disk) from pipelined reads from the same file (see: https://gist.github.com/4516438)