Remove components.push from CppMangleVisitor::substitute
Replace CppMangleVisitor::exist with CppMangleVisitor::substitute
Return early if substitute found, remove nesting level.
Merge pull request #3121 from ibuclaw/subsitute

Fix CppMangleVisitor::substitute and Remove CppMangleVisitor::exist