Revert "Revert "Add new build-time configuration feature.""

This reverts commit 4cf1376ec27dcb8fbc9a64a03a841523c40e104c.

Update tests to not use the run rule, but run the programs by other means instead.
Merge branch 'build-time-checks' into develop
regenerate docs.