#61 Making sure type parameters are correctly specified when instantiating collection types
#61 Making sure attributes can be mapped if target attribute is of a super-type
#61 Instantiating collections/maps also if implementation type is used as target type
#61 Raising an error in case a collection/map attribute can't be propagated due to differently parameterized attributes in source and target