Auto merge of #24051 - TheGoddessInari:fix_windows, r=jdm
Auto merge of #24051 - TheGoddessInari:fix_windows, r=jdm

build_commands: Make Visual Studio detection not assume environment

<!-- Please describe your changes on the following line: -->
Ever since 681d7b165a849bc2c93b11b5968d345f1868a987, servo breaks building if you're not running Visual Studio 2015 or 2017 in the default location on C:.

I rewrote the PR to not assume environment, similarly to #23098.

We need to stop meeting like this. 🦊

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because 681d7b165a849bc2c93b11b5968d345f1868a987 didn't. Realistically, there should be environment tests for Visual Studio 2015, 2017, and 2019, but I won't have the time for it soon.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24051)
<!-- Reviewable:end -->

splav/servo,paulrouget/servo,nnethercote/servo,paulrouget/servo,KiChjang/servo,saneyuki/servo,splav/servo,larsbergstrom/servo,splav/servo,nnethercote/servo,saneyuki/servo,larsbergstrom/servo,paulrouget/servo,DominoTree/servo,saneyuki/servo,paulrouget/servo,notriddle/servo,paulrouget/servo,paulrouget/servo,DominoTree/servo,splav/servo,notriddle/servo,KiChjang/servo,KiChjang/servo,DominoTree/servo,nnethercote/servo,larsbergstrom/servo,nnethercote/servo,DominoTree/servo,DominoTree/servo,saneyuki/servo,KiChjang/servo,notriddle/servo,saneyuki/servo,larsbergstrom/servo,saneyuki/servo,nnethercote/servo,nnethercote/servo,KiChjang/servo,notriddle/servo,paulrouget/servo,nnethercote/servo,splav/servo,saneyuki/servo,nnethercote/servo,larsbergstrom/servo,notriddle/servo,saneyuki/servo,DominoTree/servo,paulrouget/servo,notriddle/servo,DominoTree/servo,splav/servo,larsbergstrom/servo,notriddle/servo,nnethercote/servo,DominoTree/servo,splav/servo,KiChjang/servo,splav/servo,KiChjang/servo,splav/servo,notriddle/servo,paulrouget/servo,saneyuki/servo,DominoTree/servo,notriddle/servo,notriddle/servo,KiChjang/servo,larsbergstrom/servo,DominoTree/servo,splav/servo,paulrouget/servo,nnethercote/servo,larsbergstrom/servo,KiChjang/servo,saneyuki/servo,larsbergstrom/servo,larsbergstrom/servo,KiChjang/servo