fix: avoid inconsistent Content-Length and actual body

If lengths of all posted arguments are known HTTPClient sends
'Content-Length' as a sum length of all arguments. But the length of
actual body was wrong because it read as much as possible regardless of
what IO#size returned. So if the file is getting bigger while HTTPClient
is processing a request the request has inconsistent Content-Length and
body.

This bug is found, and the fix is proposed both by @Teshootub7. Thank
you very much for patient trouble shooting!

Fixes #117.