Modify exec_user() to pass a return value back from the called function
This turns out to be rather more useful in general, and the only changes
required to make it work is not to clobber %eax on the return back to kernel.
A compatability exec_user_void() is introduced to wrap exec_user() for
existing users with void functions. The exec_user selftest is updated to use
the new functionality, instead of passing a result back via a static variable.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>