'add' event is triggered twice under certain conditions

When two virtual collections have the same parent, and the first one modifies models in the 'add' event callback, the second one will fire 'add' event twice. This PR fixes the bug (test included).