Port node:test and node:test/reporters
A guest can now run a test file directly (`node file.test.js`) the way agents and package scripts use node:test. Ported from Node 24.16.0's lib/internal/test_runner: - Test, Suite and hooks, only/skip/todo, concurrency, timeout, signal, plan, t.assert, waitFor and expectFailure, with Node's option validation. - The harness: the bootstrap and build-phase gates, so async describe() builders settle before any test runs, and the exit code. - The spec, tap, dot, junit and lcov reporters, wired through compose() as Node does. - mock (fn, method, getter, setter, property), mock.timers and snapshots. - run({ isolation: "none" }), loading test files in this process. Refused: run() with process isolation (needs Node CLI flags and v8.Serializer), coverage (needs the inspector). mock.module is absent, as in Node without its flag. Without async context, a test registered after an await inside an async describe() lands under the root. Stream fixes found on the way: compose() no longer wraps stages that are already streams, Duplex.from(readable) no longer stalls after an empty read, push() gates 'readable' the way Node does, and pause()/resume() skip destroyed streams. setTimeout and setImmediate gained util.promisify.custom. Goldens recorded under Node 24.16.0, with an opt-in duration mask for the default reporter; full offline suite 613/613.