bin/modernish: fix -n (-o noexec) shell option
bin/modernish: fix -n (-o noexec) shell option

'modernish -n' allows checking the syntax of a portable-form
modernish script without executing the script, but after
initialising its modules as indicated with #!use hashbang commands,
so that any extra aliases provided by those modules (such as
var/loop) are included in the syntax check.

'modernish -n -c "script"' worked, but 'modernish -n "scriptfile"'
did not. This commit fixes that bug.

Another issue is that some shells (at least dash; yash <= 2.45)
cannot switch to '-n' mode mid-execution, so this functionality
cannot be implemented on those shells. Modernish now exits with an
error message if the switch to -n fails.

modernish/modernish