Separate Xcode and CLT doctor checks by OS X version

I want to separate the "is Xcode up-to-date?" and "is the CLT up-to-date?" checks, since they are separate entities and can be updated independently of one another. Right now we can only warn about one at a time.

I found the current checks hard to follow so I decided to pull the `MacOS.version` conditionals out of the method bodies. This means there is a small amount of duplication but I think it makes it *much* easier to understand what conditions trigger a particular check (and thus much easier to fix bugs or make modifications).

As as side effect I had to remove `check_standard_compilers`, but I plan to rewrite that in a similar fashion.