Modified the behaviour when setting multiple descriptors of the same name.

Provision was previously made to track the case where multiple descriptors of the same name
(and potentially id and other information) are added to the itemgroup. This was done through
a list called _new_names.

This is needed to track new items that need to send updated metadata to the receiver. However
in long running tasks that frequently resend metadata this can cause memory leaks.

The list approach was broken anyway as the actual item description was still resolved by name,
and hence any duplicates in the list all got the same item anyway. Switching to a dict
preserves this behaviour, but removes the possible memory issues.