fdo#76260 - the wrong way to get a 10% win with an N^3 operation.

Micro optimising the inner-loop is never the right way; on the other
hand this is 10% of load time and is waste.

Change-Id: Ie275be53e30834cbb6576b8e7580c16d2e47bf16
fdo#76260 - a better approach for getting element names.

Don't do lots more work than we need to to build the list of names.
It appears that the [] operator does a lot of apparently un-necessary
work.

Change-Id: Id603fb4e717dc7130468465493edccfe51d384c7
fdo#76260 - Switch from vector to std::stack.

std::stack uses std::deque which is extremely expensive for this case.
This change saves 43bn of 98bn cycles spent in createFastChildContext.

Change-Id: I63919a9826563171f128e09d7206ac6cfdde336f