ablitity to set correct Content-Type for stream data

Currently, Content-Length header is not set for PUT requests which accept InputStream as data. Content-Length is set automatically for byte array PUTs, but it's dangerous to use byte arrays for sending big files. So I've added a parameter to InputStream PUT to specify data size, if it is known.