Support for KDescendantProxyModel "collapsing" nodes
When a node is marked as "collapsed", all its children won't be shown in the proxy model, just like a treeview with all collapsed nodes. nodes can be all collapsed by default or expanded by default (that's the default behavior, also for retrocompatibility)
The QML binding adds roles (with autogenerated ids to ensure we have no conflicts with source model's roles) that indicated how deep the item is in the tree, if it has children and if it has siblings, so it's possible to decorate it with actual tree view graphics.