Basic prototype of a tree iterator.
Preliminary work on filtering out a specific Component subclass.

I get a segfault right now when trying to filter out only Foo's. Not sure what
the cause is. The tree and iterator are now more intimately tied to
Component's.
Use namestr() instead of name() for Output's.
Another, simpler iterator that works by traversing the tree in PreOrder fashion as a linked list.
Fix compilation errors on gcc and clang due to last commit.
Use postfix increment operator for iterator in test
Change signature of connect to fix traversal using iterator and remove earlier TreeIterator per discussion with Chris.
Add in filtering so that iteration can be on a specific type of Components. Modified testComponentInterface to show a use case.
Merge branch 'master' into iterator
Fix bug found during testing and add iteratorExample to demonstrate usage. Need one more pass for documentation/cleanup.
Fix compilation error due to typo in CMakeLists.txt, also print out some summary info in example.
Fix build problems on unix
Some cleanup: change new parameter to connect() method from Component* to a boolean flag indicating toplevel. Much easier to explain and less error prone. Modified derived classes and test cases accordingly.
Remove IteratorExample from CMake as it's moved to Tests
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.
Move methods that rely on Component to header file. Fixes build problems on linux
Merge remote-tracking branch 'remotes/origin/master' into iterator
Rename iteratorExample directory into testIterators until there's a place to hold useful examples
Fix makefiles to account for changing iteratorsExample into a test case.
Add comments to test case.