hasMany collections are no longer replace but merged.

This allows all the listeners to still be valid and not rebind everytime
the collection is set to something new.