Set CC, CXX explicitly in gnu makefiles.

GNU make defaults to cc for CC, but g++ (rather than c++) for CXX.  This
is usually OK, but not on current versions of OS X and its devtools,
where {cc,c++} is Clang and {gcc,g++} is GNU C. It could become a
problem elsewhere where GCC is not the default toolchain (as e.g.
FreeBSD plans to do).

Explicitly set CC and CXX to make sure the same compiler is used.
Test if the compiler is Clang separately for CC and CXX.

...because they may be different compilers.