Collide with optimization

`Node.collideWith` always traverses the whole scene through `child.collideWith(...)` recursion. 

This optimization tries to avoid recursion when possible using boundingVolume test first.