Move ComponentList and ComponentListIterator into a separate file to enable swig wrapping and add necessary headers and instantiated templates to SWIG interface files. Also added documentation and made the method advanceToNextValidComponent private.