fix(ext/node): rewrite Pipe.open(fd) to use raw fd ops (#33136)
## Summary
Rewrites `Pipe.open(fd)` to use the `NodeFsState` fd-based I/O
infrastructure (from #33039) instead of creating Deno resources.
- **New op: `op_node_register_fd`** -- registers a raw OS fd in
`NodeFsState` so existing fd-based read/write/close ops work on it.
Supports both Unix (`from_raw_fd`) and Windows (`DuplicateHandle` +
`from_raw_handle`).
- **Replace `FileStreamConn`** (resource-based, with EAGAIN polling)
with `FdStreamBase` that uses
`op_node_fs_read_deferred`/`op_node_fs_write_deferred` directly on the
raw fd.
- **`Pipe.open(fd)` now works on Windows** (was `notImplemented`).
- **Remove `op_net_unix_stream_from_fd`** and `is_socket_fd` from
`ext/net` -- no longer needed.
This is a step toward implementing `net.Socket({ fd })` and fixing the
Git Bash TTY panic (#33131).
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>