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..
To ensure these semantics, then this method must be something like:

```
if (m_filter) delete m_filter;
m_filter = filter;
```

I really hope we can avoid manual memory management here. Can we use a shared pointer or something?