kernel - Fix vkernel_trap
* vkernel_trap restores the trapframe for the original vkernel call to
vmspace_ctl(), but only the syscall trap code was actually setting
up the frame for a syscall-return.
The other calls to vkernel_trap() (signal, page-fault, other traps)
were not properly adjusting the frame for a syscall-return and it
is only pure luck that it didn't bite us until now.
* Add a per-platform cpu_vkernel_trap() which does the syscall-return
fixup at the end.
Reported-by: Antonio Huete Jimenez <tuxillo@quantumachine.net>