Fix breakage on MoarVM

MoarVM's open op does not handle writing to a pipe (openpipe does), but nqp-p
does not have openpipe. Since it is hard to conditionally use compile ops I
switched to using shell(), which just means that we have to write the C file
down first.