Now using the affinity mask when it's set, thus limiting the number of processors available to the ThreadPool.
For example:
> start /B /AFFINITY 0xF lld-link.exe ...
Would let LLD only use 4 hyper-threads.
This also fixes an issue on a 48-core Windows Server 2019, which was preventing from using both CPU sockets. In that case, ProcessorGroup::AllThreads was retrieved as 64 for each group, but ProcessorGroup::UsableThreads was set to 48 (which is the max possible for each group). The previous code in llvm/lib/Support/Windows/Threading.inc L201 was improperly assuming those values would be equal when the affinity mask was fully set. I've tested the new code on a wide variety of configurations & OSes (Windows Server 2016, 2019 and Windows 10).
nit: In "group boundaries", _group_ should be singular.