Adds before:child:remove to collectionView

- Adds before:child:remove to collectionView
- Adds tests for child:remove and before:child:remove
- Only triggers child:remove when a child is removed

Resolves some of #1173 and all of #612