Refactor duplicate code
Use SystemType-specific exception classes
Increase strictness of GxxCompiler._exe_matches_tool_and_system_type()