Add more compiler checks and fallbacks:
- Explicitly use clang if available
- Fall back on cc/c++

This should fix building on FreeBSD 10, which does
not have gcc by default.