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..
In a previous life for this file, @sherm1 and I said:

me:
> I'm afraid that this code is in a non-obvious location (I know I had put iterator method implementation code at this location before). Maybe ComponentList.cpp?

@sherm1:

> Templatized method definitions usually have to be in a header file (unless you can enumerate all the possible specializations ahead of time).

So I think these methods should go in `ComponentList.h`.