invalidate artifacts if a dependency is removed

Artifacts must be invalidated if a dependency is removed.
Consider a foo.cpp that includes bar.h. If bar.h is removed from the
project, then we must recompile foo.cpp to trigger the compile error
that stems from the wrong include.

Change-Id: Ifc2bc3085be553f87685a17c5ff05273daa6579c
Task-number: QBS-631
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Cpp module: Fix "visibility" property.

The GCC visibility options can be combined.

Change-Id: I9fe5c9bb80f2fcc97cd5a5bc0651314ecd180e51
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
fix up-to-date check wrt missing file dependencies

Missing file dependencies (e.g. header files that are not part of the
project) must trigger a rebuild their dependents.

Change-Id: I502e696d886c86a503e8950ae60254075f7e9415
Task-number: QBS-631
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>