updateLogicalState optimization

`updateLogicalState` traverses the whole scene through recursion `child.updateLogicalState(tpf)`.
To recognize whether recursion is necessary, we can maintain child controls count inside `Node`'s subtree and when there are no controls, skip the `updateLogicalState`  recursion.