Add targets test-* and build-* for each product-* target, only re-run tests on change

I noticed and was suitably impressed. Though... honestly, anyone with enough discipline to modify the CMake files as often as you do undoubtedly has mountains of self control to have not run away screaming yet ;-)