Description
Currently path queries do a lot of label collection copying. This has a significant impact on performance.
As the labels are known and set on the traverser when Traverser.split(r, step) is called there is no need to call Traverser.addLabels again in AbstractStep
Also seeing as AbstractStep.getLabels() returns an UnmodifyableSet the step's labels can be used directly in the traverser. There is no need to make a copy of it.