updateGeometricState optimization

`Node.updateGeometricState` always traverses the whole scene through `child.updateGeometricState()` recursion. Such traverse can be optimized to skip the recursion when there is no need to call `updateGeometricState()` on any child.

The `refreshFlags` were currently able to recognize transform or bound update necessity, but unable to say anything about possible LightList update need on any children.

For this reason the new refreshFlag `RF_CHILD_LIGHTLIST` was introduced and along with other flags used to skip the `Node.updateGeometricState` recursion whenever possible.