Add listeners for 'change', 'remove' and 'reset' only once

The listeners on `group_collection` to the 'change', 'remove' and 'reset' events on the collection are added each time a group is created. Adding it only once is enough.

Secondly, if a `VirtualCollection` is created with an empty collection, no group is created and no listeners are added. With this fix the empty virtual collection is also updated when a 'change', 'remove' or 'reset' event is triggered.