Update update_idl.py

This change generalizes, optimizes, and fixes update_idl.py.

update_idl.py is a script that was used for updating some of the
win_build_output/midl files. It was originally written just to update
the files in chrome/updater/app/server but this change generalizes it so
that it can be used for ten idl targets. This is important because
the output files change whenever we do a Windows SDK update and the
files need to be regenerated for x86, x64, and arm64 for all ten
targets.

This change generalizes this script by adding the additional seven build
targets to the idl_target list.

It optimizes this script by not calling gn gen if the build settings
have not changed, and by making the architecture loop the outermost
loop. This makes the script run many times faster.

It makes the script more reliable by using -j 1 so that the build output
is predictable.

This change was tested by running this command with the current
toolchain, and also with a not-yet-committed change that includes the
Windows 11 SDK. In the first case no updates were found to be needed. In
the second case many updates were made and these were sufficient to pass
the CQ with the new toolchain.

Bug: 1273169
Change-Id: Idb2b4e18e59464fce455201b09d4cb3f67b1cfd3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4246046
Reviewed-by: Xiaoling Bao <xiaolingbao@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1104678}
NOKEYCHECK=True
GitOrigin-RevId: 2d3b443d96b65d204bb037dcf54d503441e14ad3
1 file changed