CI move check incorrect sphinx directives to pre-commit
Currently, the check (which uses `grep` with the return codes inverted) doesn't catch

```python
    .. warning:
```
, while using `pygrep` from `pre-commit` (which is a Python implementation of `grep` with inverted return codes) does. I think this is because grep doesn't count the newline as a character

Advantages of moving this (and, later, other) `invgrep` checks to pre-commit are:

- they'll be cross-platform
- they'll be simpler to write/maintain because `pre-commit` comes with `pygrep` built-in, so there's no need to manually define something like `invgrep`
- they'll give devs faster feedback on when they introduce unwanted patterns
thanks @MarcoGorelli these pre-commit hooks are nifty