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..
@aymanhab this was a change by making the `Super::extend<...>` consistent. I guess that change came in after you made this PR- sorry about that! The good news is I think you can remove where you walk through subcomponents and it should work. You see the last line in the method is now `componentsConnect()` which is walking the subcomponents.