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..
Should mention that this is a pre-increment operator. I see that there is no post-increment, but shouldn't there be one? If not, the fact that it is intentionally missing should be mentioned.

Also it looks like this is what C++ calls a forward_iterator, but it doesn't make use of the stl facilities for defining iterators so stl library routines won't be able to tell if they can work with these iterators. I don't think that's necessary in this PR, but if it doesn't follow the C++ iterator conventions that should be noted in the class documentation and an issue should be filed.