When PointerIntPair was updated to put the IntShift etc. in a helper type, it broke some MSVC visualizations, in particular PointerIntPair and PointerUnion. This patch fixes PointerUnion (PointerIntPair visualization has already been fixed) visualization by adding a local typedef to PointerIntPair so the PointerUnion visualizer can find the IntShift, etc.
While this could have been done in principle without adding the typedef, it not only seems generally useful for debugging, but writing the complex expressions needed without it seem to break the MSVC native visualizer, so this approach seems like a win-win.
As a bonus, we also slightly improve the SmallVector visualizer not to go crazy when visualized before its constructor is called