[utils] Add foreach variant that supports filtering the list as you go.
[runtime] Introduce the notion of a tools thread.

A tools thread is one that can access core runtime structures but not touch anything managed (code or heap).

It's intended to enable the profiler to resolve missing backtraces from its helper thread.

THIS IS A HACK.

The right solution would be to not perform this on the profiler at all and simply log IPs and let the decoder
resolve them. But then there's reality and we can't simply break the current format without consequences.

We're taking this hack for now until we can fix the profiler to do something sensible.
[jit] Don't sample threads that are not fully attached.
[profiler] Use the new hidden API to attach the helper thread as a tools thread. This makes JI lookup work more reliably.
[msvc] Define SSIZE_MAX if not already defined (i.e. on Windows)

limits.h from MSVC does not include SIZE_MAX or SSIZE_MAX. We need the latter to build sgen, so define it.
[system.data] Fixes DbEnumerator current property to clone read data. Fixes #24452
[linq] optimize Take(0)
[xbuild] Change default tools profile to still work with not yet removed 2.0 profile
[msvc] Refreshed .def files (needed for SGen to build)
[msvc] Add missing sgen source files to libmonoruntime.vcxproj
[system.net.http] set-up cancellation before any WebRequest method is called. Fixes #24704
[msvc] Add _SGen Configurations to {eglib,libgc,genmdesc}.vcxproj

These configurations are needed to build a Debug_SGen version of mono.vcxproj, which is needed to build mono-sgen.exe
[system.net.http] Allow use of absolute url paths without scheme in HttpRequestMessage
[mcs] Remove 2.0 profile dependency from one test
[mcs] Add string type to the list of valid cast tokens
Merge pull request #1423 from directhex/sgen_on_msvc

[msvc] Get sgen building on MSVC
[jit] Fix the AOT part of #24577, the epilog beginning was calculated using the code size, which can be different in AOT mode due to alignment padding between methods.
Merge pull request #1420 from directhex/define_ssize_max_on_windows

[msvc] Define SSIZE_MAX if not already defined (i.e. on Windows)
[runtime] Remove a getdtablesize () reference from eglib too.
[runtime] Remove another getdtablesize () reference.