cmake: fix docs build

Fixes #33276 by:
* adding a --without-docs option
* using --single-version-externally-managed

I've started drafting a new Homebrew Python guide that [touches on what --single-version-externaly-managed does](http://wiki.kumokasumi.org/doku.php?id=homebrew_python_policy_draft#rationale_and_background), why we need it, and why some setup.py's don't accept it.
Prefer `&&` over `and`