Throw exception when a constructor argument has the same name but different type to a property on the test object.
Test that TestObjectBuilder does not have a property corresponding to a property on the product that doesn't have a setter.
Factored code that decides which properties to add to the TestObjectBuilder into a separate function.
Remove todo comment.
Implemented building of Products with constructors that take arguments to concrete class ProductTest.  Will move this into TestObjectBuilder later.
Implemented building of Products with constructors that take arguments in TestObjectBuilder.
Remove property from ProductTestObjetBuilder that is left over from move of building with constructor feature to TestObjectBuilder class.