Phase 20 includes Request bodies sourced from ReadableStream and sent over HTTP/1.1 chunked transfer encoding. Add support for fetch() and Request construction to accept a ReadableStream body, stream chunks to the net layer without buffering the full payload, and reject invalid body reuse.
Acceptance criteria:
- fetch(url, { method: "POST", body: readableStream }) sends chunks incrementally using HTTP/1.1 chunked transfer when no Content-Length is known.
- Request objects track bodyUsed/locking so the same stream body cannot be consumed twice.
- Cancelling or erroring the stream aborts the upload and surfaces a fetch rejection.
- Existing byte/string body paths continue to work.
- Add unit tests in js/browser/net as appropriate, plus an e2e or harness scenario if the behavior is exposed through script.