Don't change Property's presentation name if it's already set

`Product.set_property(propname, value)` currently sets the Property's presentation name to `propname` even if the Property already exists and has a property name set. This pull request fixes this bug and adds a test.