Following up on #3696, use the new is-terminal crate to test for a tty rather than having platform-specific logic in Wasmtime. The is-terminal crate has a platform-independent API which takes a handle. This also updates the tree to cap-std 0.24 etc., to avoid depending on multiple versions of io-lifetimes at once, as enforced by the cargo deny check.
This is the test-programs crate, which builds and runs whole programs
compiled to wasm32-wasi.
To actually run these tests, the test-programs feature must be enabled, e.g.:
cargo test --features test-programs/test_programs --package test-programs