Without `rich` installed, `kasa` prints tags like `[bold red]Only
discover is available without --host or --alias[/bold red]` verbatim.
The fallback in `kasa/cli/common.py` strips only single-word tags
(`\[/?[a-z]+]`), and `error()` uses the two-word `[bold red]`.
The pattern is changed to `\[/?[a-z]+(?: [a-z]+)*]`, so space-separated lowercase words are stripped too.
Addresses an issue with how `asyncclick` deals with `KeyboardInterrupt`
errors. Instead of the `click.main` receiving `KeyboardInterrupt` it
receives `CancelledError` because it's a task running inside the loop.
Also ensures that discovery catches the `CancelledError` and closes the
http clients.
Python 3.11 ships with latest Debian Bookworm.
pypy is not that widely used with this library based on statistics. It could be added back when pypy supports python 3.11.