Changing a List or Dict variable now correctly invalidates the containing component

Making an in-place change to a List or Dict variable

  comp.xlist.append('abc')
  comp.xdict['def'] = 'ghi'

now correctly invalidates that component. This was done by adding a callback to the  enthought listeners that already exist for those.

Unfortunately, Array is not set up in a way that can support this without some significant changes.