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..
Would it be nicer to have an interface that takes a const ref instead of a pointer?
Also it isn't very clear what "choose" is supposed to do. If it returns bool should it answer a question like: `isMatch()` or `isCorresponding()`?