Add a generic tree visitor.
Add a generic tree visitor.

This visitor replaces the function-pointer-based walkers with a more
modern design centered around the curiously-recurring-template pattern.

yizhang82/coreclr,poizan42/coreclr,gkhanna79/coreclr,gkhanna79/coreclr,tijoytom/coreclr,poizan42/coreclr,kyulee1/coreclr,krk/coreclr,JonHanna/coreclr,rartemev/coreclr,russellhadley/coreclr,YongseopKim/coreclr,botaberg/coreclr,cshung/coreclr,wtgodbe/coreclr,mmitche/coreclr,JonHanna/coreclr,AlexGhiondea/coreclr,tijoytom/coreclr,AlexGhiondea/coreclr,AlexGhiondea/coreclr,wtgodbe/coreclr,hseok-oh/coreclr,rartemev/coreclr,yizhang82/coreclr,AlexGhiondea/coreclr,YongseopKim/coreclr,rartemev/coreclr,JonHanna/coreclr,wtgodbe/coreclr,ruben-ayrapetyan/coreclr,russellhadley/coreclr,mskvortsov/coreclr,ragmani/coreclr,botaberg/coreclr,kyulee1/coreclr,JosephTremoulet/coreclr,JonHanna/coreclr,mskvortsov/coreclr,russellhadley/coreclr,kyulee1/coreclr,YongseopKim/coreclr,pgavlin/coreclr,JosephTremoulet/coreclr,wtgodbe/coreclr,ragmani/coreclr,krk/coreclr,pgavlin/coreclr,cydhaselton/coreclr,hseok-oh/coreclr,gkhanna79/coreclr,mmitche/coreclr,mskvortsov/coreclr,pgavlin/coreclr,wtgodbe/coreclr,tijoytom/coreclr,dpodder/coreclr,JonHanna/coreclr,yizhang82/coreclr,AlexGhiondea/coreclr,cshung/coreclr,pgavlin/coreclr,ruben-ayrapetyan/coreclr,JosephTremoulet/coreclr,parjong/coreclr,mmitche/coreclr,ruben-ayrapetyan/coreclr,gkhanna79/coreclr,JosephTremoulet/coreclr,kyulee1/coreclr,ragmani/coreclr,poizan42/coreclr,YongseopKim/coreclr,wtgodbe/coreclr,hseok-oh/coreclr,parjong/coreclr,rartemev/coreclr,poizan42/coreclr,yizhang82/coreclr,pgavlin/coreclr,cshung/coreclr,dpodder/coreclr,ruben-ayrapetyan/coreclr,ruben-ayrapetyan/coreclr,rartemev/coreclr,tijoytom/coreclr,gkhanna79/coreclr,hseok-oh/coreclr,kyulee1/coreclr,mmitche/coreclr,botaberg/coreclr,cshung/coreclr,mskvortsov/coreclr,wateret/coreclr,mmitche/coreclr,ragmani/coreclr,cydhaselton/coreclr,AlexGhiondea/coreclr,dpodder/coreclr,wateret/coreclr,botaberg/coreclr,ragmani/coreclr,hseok-oh/coreclr,cshung/coreclr,mskvortsov/coreclr,parjong/coreclr,krk/coreclr,JosephTremoulet/coreclr,cydhaselton/coreclr,rartemev/coreclr,JonHanna/coreclr,russellhadley/coreclr,krk/coreclr,pgavlin/coreclr,cydhaselton/coreclr,krk/coreclr,poizan42/coreclr,gkhanna79/coreclr,wateret/coreclr,russellhadley/coreclr,yizhang82/coreclr,mmitche/coreclr,dpodder/coreclr,hseok-oh/coreclr,parjong/coreclr,krk/coreclr,ruben-ayrapetyan/coreclr,poizan42/coreclr,ragmani/coreclr,tijoytom/coreclr,JosephTremoulet/coreclr,dpodder/coreclr,mskvortsov/coreclr,dpodder/coreclr,cshung/coreclr,YongseopKim/coreclr,botaberg/coreclr,wateret/coreclr,kyulee1/coreclr,YongseopKim/coreclr,wateret/coreclr,cydhaselton/coreclr,parjong/coreclr,russellhadley/coreclr,tijoytom/coreclr,wateret/coreclr,yizhang82/coreclr,botaberg/coreclr,cydhaselton/coreclr,parjong/coreclr