Restructure Triple::getARMCPUForArch so that invalid values will return nullptr, while retaining the behaviour that an argument specifying no particular architecture version will give a default CPU. This will be used by clang (in D9602) to give an error on invalid -march values.
Also restructure the extraction of the architecture version from the MArch string a little to hopefully make what it's doing clearer.