Do not assume we can determine content length for generic Readable streams.

I started using a library which provided me with data as a stream.Readable object. This readable stream did not come from a file (i.e. it was not created using fs.createReadStream(..)). I noticed that the code was incorrectly assuming a certain content-length. I have made fixes to getLength, getLengthSync and submit to make sure that we do not incorrectly assume the content-length for stream data.