All VM output now funnels through a single writechar hook
(TIOWriteCharHook) that the OS/emulator layer provides at startup.
High-level helpers (writestring, writeintWND, writehexpair, etc.)
are built entirely on writechar.
- Add src/wasm/vm/wasm.vm.io.pas (hookable IO layer)
- Add src/wasm/test/infra/wasm.test.io.pas (15 assertions)
- Update ~75 files: console -> wasm.vm.io in uses clauses
- Wire emu_writechar (RTL Write wrapper) in WASURO.lpr
- Remove emu/console.pas dependency from all wasm code