cmCxxModuleUsageEffects: Collect and apply BMI compatibility requirements

This gathers properties and other details affecting Built Module Interface (BMI)
compatibility for C++ module importers and applies them as necessary to
synthetic targets, which represent a specific module import scenario.
8 files changed