This change is focussed on simplifying Support/Host.h to only do
target detection. In this case, this function is close in usage to
existing functions in Support/Threading.h, so I moved it into there.
The function is also renamed to llvm::get_physical_cores() to match
the style of threading's functions.
The big change here is that now if you have threading disabled,
llvm::get_physical_cores() will return -1, as if it had not been able
to work out the right info. This is due to how Threading.cpp includes
OS-specific code/headers. This seems ok, as if threading is disabled,
LLVM should not need to know the number of physical cores.
It looks like this is the only place get_physical_cores is used, and if the number is unknown or threading is disabled MaxThreadCount is just set to 1. Would it not make sense to change get_physical_cores to return 1, like compute_thread_count?