Detect whether cc (the linker) is gcc or clang.

Detect whether cc (the linker) is gcc or clang.

Use this information to drive which options are added to the `cc`
command line arguments.

As a drive-by, fix an english grammar mistake in a comment.

This is meant to be, in part, a more robust version of PR #17192.

Fix #17214.
I'm pretty sure we can cache the info (e.g lazily computing it via a method on the session).  I didn't feel like taking the time to implement that since I just wanted builds to work again on my home machine, but I will go ahead and add the lazy computation.