breakmancer 0.9.0

Drop a breakpoint into any shell.
Documentation

# Notes for developers

## Build, test, and release

- Review changelog to ensure nothing important has been omitted
- Update version in `Cargo.toml`
- Update the changelog version (add a new release header below the `Unreleased` header)
- Update the version variable `BM_VER` in `fetch-and-run.sh`
- Run `./build-releases.sh` to produce binaries in `target/artifacts/`.
- Do any manual testing
- Commit version change
- `cargo publish`
- `git tag -a vX.Y.Z -m X.Y.Z`
- `git push && git push --tags`
- Cut a new release on Codeberg:
    - Name the release X.Y.Z (no `v` prefix)
    - Attach binaries from `target/artifacts/` to the release
    - Hide auto-generated archives
- Test the release by running `./fetch-and-run.sh`

## Manual testing

Some interesting things to enter:

- `(yes "out" | head -n20)& (yes "   err" | head -n20 >&2)` to show interleaving of stdout and stderr
- `echo start; sleep 10; echo stop` to experiment with blocking commands
- `while true; do date; sleep 0.001; done` for a rapid output stream (not as fast as `yes`)