Update owo-colors
The goal here is to remove a transitive dependency on the deprecated atty crate, which trips cargo deny because it's unmaintained.
This currently does not eliminate the dependency completely, as we're still waiting on color-eyre to release 1, and merging this PR as-is would result in cargo deny being even more angry at using different versions of the same crate, so this PR is a draft for now.
The update is non-trivial because owo-colors no longer supports checking whether stdin supports colors, which is, well, reasonable.
Semantically, this cements the Stream trait as something that can be printed onto, rather than a generic-purpose stream. Uses of as_tty are replaced with a direct call to the std is_terminal function, and Stream (now called OwoStream) now exclusively handles mapping std I/O streams to owo-colors streams.