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..
Same comment as for the constructor -- shouldn't this be a const pointer? Also, if you are passing a pointer I assume that's because you want to allow nullptr to indicate the default, is that right? If so the comment should say so, if not this should be a reference rather than a pointer.