add error reporting to try to understand wesnoth.require error
fixups: don't construct string from NULL, avoid complicated API

In the error handling routines for compiling and running a script
at runtime, don't construct a string directly from lua_tostring,
because if it is null that is a runtime error. Instead check for
this scenario.

In intf_require, when getting the "wesnoth" global, luaW_getglobal
is unnecessary and lua_getglobal should be prefered.
minor fixup: add braces to an if statement in lua load file
bugfix: intf_require would segfault if a thread called it

The problem was that intf_require would assume use the wrong
lua_State* since it finds it using the kernel's this pointer. This
commit gives a version of "protected_call" which allows to use the
callback's lua_State*.
fix a binding for "select_game" for the plugins context
fixup multiplayer lobby plugins bindings