Codex needs (and future projects are anticipated to need as well) a concept of display-only terminals. This refactors terminals to decouple the PTY part from the display part, so that we can render terminal changes based on a series of events - regardless of whether they're being driven from a PTY inside Zed or from an outside source (e.g. `codex-acp`). Release Notes: - N/A