CUDA binary target support check can't work
The check that verifies whether mdrun includes code that can run on the detected, but otherwise supported GPU has been ineffective as it is called at
gpu_init() time while the sanity checker dummy kernel will already fail to launch earlier when mdrun doesn't have code to run on the device.
checkCompiledTargetCompatibility() should clearly be called earlier.
Fix CUDA compiled target-device compatibility check
The check that should catch cases where the binary does not contain
suitable code for the otherwise supported GPU architecture was
erroneously called from the initialization which is too late to
actually trigger it as the error that is meant to prevent will be
already triggered when the sanity checker tries to launch the dummy
This change moves the check in question into the sanity checking and
keeps the fatal error as this is a rare condition that's unexpected
and typically a result of a misconfiguration at GROMACS build time.