Unified logic for computing target ABI in backend and front end by moving this common code to Support/TargetParser.
Modeled Triple::GNU after front end code (aapcs abi) and updated tests that expect apcs abi.
Removed assertion in backend to avoid different compiler behavior due to build mode.
I think the flow I had before worked better. Anything that was passed in that was unrecognized should assert as the only way into this code should be via a tool that checks valid options and then we can check for empty and create a default one in that case.