Collection memory leak fix and Node.remove behavior fix

* Ensure that an Entity clears up its collection entries when the clearEventListener function is called as the removeFromCollection listeners will be cleared

* The remove function of the Node should first remove the child from its parent node to trigger cleanup events (e.g. removedfromscene) and then it is safe to clear the event listener

* added test case for collection behavior when using remove or parentNode.removeChild