Simplify outlineview by reusing code from OutlineNode in the model
Instead of storing a std::vector<OutlineNode> we now store a single
OutlineNode* which means the model no longer iterates over the decls of
the TopDUContext but rather we reuse OutlineNode::appendChildContext()
REVIEW: 123586