Protect caml_process_pending_actions_exn with caml_something_to_do.
Protect caml_process_pending_actions_exn with caml_something_to_do.

When using OCaml >= 4.10, function caml_process_pending_actions_exn is
called whenever the bytecode interpreter tries to apply a term. This
function exits immediately when caml_something_to_do is not set. But since
term application happens every few opcodes, even exiting immediately still
accounts between 5% and 10% of the whole interpreter. So, this commit
makes sure the function is not called unless caml_something_to_do is
already set (i.e., when the user presses Ctrl+C). This means that this
conditional branch is perfectly predicted by the processor.

On the following benchmark, this commit makes the VM 13% faster.

  Time Eval vm_compute in Pos.iter (fun x => x) tt 100000000.

Note that, before OCaml 4.10, the VM code was checking the value of
caml_signals_are_pending before calling caml_process_pending_signals. So,
this commit actually fixes a regression.

ejgallego/coq,SkySkimmer/coq,Zimmi48/coq,JasonGross/coq,JasonGross/coq,coq/coq,ejgallego/coq,Zimmi48/coq,SkySkimmer/coq,JasonGross/coq,coq/coq,SkySkimmer/coq,ejgallego/coq,Zimmi48/coq,coq/coq,SkySkimmer/coq,ejgallego/coq,coq/coq,JasonGross/coq,Zimmi48/coq