match Properties
This is the core function of the Matcher. It matches a vulnerable product against a component by comparing different Property objects in a defined order.
First, it matches the vendor name (see VendorProperty / VendorPropertyProvider)
Then, it matches the product name (see ProductNameProperty / ProductNamePropertyProvider)
Finally, it matches the product version (see ProductVersionProperty / ProductVersionPropertyProvider)