Weak pointers to children within ItemTreeNode

This provides access to an item tree node's children even after the
ItemTree object has been deleted. Children may have been deleted when
the ItemTree object was deleted, so you should check if the weak
pointers have expired.