Added test for case where two constructor arguments with identical name and type are provided.
Added functionality: validate that user didn't supply multiple constructor arguments with same name but different type.
Clean up code: no need to test if constructorArguments are null anymore because constructorArguments are set to an empty list if null in CreateNewObject().
Clean up code: no need to test if ctorArgs are null anymore because constructorArguments are set to an empty list if null in CreateNewObject().
Added functionality: throw exception if user calls build without specifying all args that need to the used by the test object's constructor.
Clean up code: initialise _propertiesChangedByClien in constructor so that all initialisations are in the same place.