windows: limit uv_write size
The OS definition of a `long` is too small to represent a `size_t`,
so we need to limit the size of our writes.
Also limit the size of our allocations during reading,
since libuv will cast the result to a `ssize_t`
(and also because we want to respect our `throttle` parameter).
fix #13578 (on Windows)