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..
Consider deriving this from `std::iterator<std::forward_iterator_tag, ...>`. That would permit STL methods like std::advance() to operate correctly on this kind of iterator. Alternatively, file an issue that ComponentListIterator doesn't satisfy the C++ iterator interface and we can just make that a future project for someone.