Implement change tracking for sub-profiles.

We now catch it if some property changes in a profile that is not the
top-level profile. This was simply ignored before.
Implementing this functionality means to keep track of the per-profile
configuration. So now that this information is available, we also use it
to cache the profile part of the per-product module property map instead
of calculating it anew for every product (typically, most products in a
project use the same profile).

Change-Id: Id211756ac387c3d7866339ed0148d3e10edba47f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>