Create SOS SymbolReader managed project and change SOS to use it. (dotnet/coreclr#6783)
* Change SOS to use wrapper class that is now in System.Diagnostics.StackTrace.
The portable PDB helper code for SOS source/line support has been moved from
System.Diagnostics.Debug.SymbolReader to a new managed SOS project in the coreclr
repo called SOS.NETCore.
The public APIs have now been made internal.
Plumb through the loaded PE address to the managed SymbolReader functions so it can be used as a key.
Fixed a stack trashing/overflow when a unresolved managed breakpoint is resolved because one of the
module name buffers was too small (MAX_PATH_FNAME). Changed it (and others) to MAXLONGPATH.
SOS now works with Portable PDBs on Windows.
New dac private get module data request. Used to get the necessary info for portable PDBs.
SOS now supports in-memory PE's on xplat and Windows. Needed to get and plumb though the in-memory
PE layout where it is file based or loaded.
Better Windows GetLineByILOffset support. Uses the SymbolReader and now works with in-memory PEs.
Misc code formatting and general cleanup.
* Code review feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
75890669d59ea8e1a28ade8222ebec2706082674