make the detection logic for GPSim easier to understand and more robust

fixes a problem when GPSIM_FOUND and NO_GPSIM gets both defined in a specific situation