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.
Personally think it's nicer if we avoid going over 80 chars wide (particularly with postfix if/unless which can get visually lost otherwise). Might want to stick it above and add an `end`