Improvement of model for Product and Product Versions

This PR addresses a more realistic Product vs Project configuration.
* a Product may have different versions (mapped now by ProductVersion, i.e. ProductA may have versions "1.0", "1.1", etc)
* a Project may be mapped to ProductA for version "1.0", but not anymore for version "1.1", this is mapped now by ProductVersionProject
* a ProjectBuildConfiguration is now bound to a Project and also a ProductVersion
* a BuildCollection is now bound to a ProductVersion (not only to a Product anymore), and has an additional productBuildBumber