Move p/invoke pregeneration out of single-exe branch (dotnet/coreclr#27673)
* Move p/invoke pregeneration out of single-exe branch
This is just xcopy of the src/tools/crossgen2 directory in the single-exe branch with David's profile data changes omitted. I had to fix a `using` directive in one of the files because a `using` keyword the branch was using got deleted in master.
I don't know if there's a way to do this kind of selective merge in git, but I don't particularly care. Most of the interesting history for these files is on the CoreRT side anyway.
Also including the change to prestub.cpp that unlocks using the generated p/invokes.
* Disable ILStub emission for pinvokes until they are fixed to be non-shared
Commit migrated from https://github.com/dotnet/coreclr/commit/
bee443dc0e8fc6a74a87bd207df63db3dfbd6f14