Iterator

Implementation of an iterator that goes thru a Component and all its sub-components in a tree (pre-order) traversal. A test case that demonstrates the usage is also included, along with wrapping to make these iterators accessible from scripting..
This seems wrong to me. Why is connect traversing all subcomponents here?
The fact that subcomponents are traversed after the component will be violated. Each component's reset is called just above so this should not be necessary at all.