Remove side-effects of failed SWP detection
CheckIfSwpAvailable currently uses an error environment handler to detect the case where SWP isn't available. However there are a number of things the OS does before it invokes the error handler which could have unwanted effects - e.g. issuing Service_Error & ErrorV, clearing the hourglass, closing redirection file handles, and setting the CAO to point to the error handler. In particular the latter was found to cause the current disc image + PlingSystem to get fatally stuck on ARM2 machines - when Boot.Desktop runs any *Repeat command, application space was being shrunk to zero when Repeat calls Wimp_Initialise.
Fix these problems by changing the SWP detection to directly hook on to the undefined instruction vector.