LPS-42295

Hi Shuyang,

@laszlocsontos made some peformance improvements in his free time for LayoutLister that changes the type of the algorithm from recursive to iterative (DFS), added caching and other smaller improvements which finally led to a major performance gain. 

Could you please take a look on the fix and forward it to Brian if you agree with the changes?

thanks,
Daniel