Reimplement DacStackReferenceWalker and DacHandleWalker (#83836)
* Refactor DacStackReferenceWalker
Added a flag to not resolve interior pointers to the start of the object. This allows the debugger to shoulder that burden instead of the dac doing this work. This greatly speeds up stack root walking.
Greatly simplified the logic. There's a memory error in this code lurking somewhere because it used some complicated pointer arithmetic that wasn't correct. Since copying references isn't time critical code, I made this as dead simple as possible so it's easy to validate.
* Clean up and simplify DacHandleWalker
* Minor fixes
* Only produce SOS style reference lists
* Fix build warnings
* Fix handle walking issue
* Fix minor handle walking issue