rename set_cpp_funcs to 'set_functions' in lua_cpp namespace
add support for lua cpp function closures

This is important because the userdata function objects, although
they have call operators, don't seem to work quite right when used
in metatables.
refactor game_lua_kernel not to use resources:: for gamestate

This commit changes the majority of the wesnoth callback functions
for the game lua kernel to be private methods of the game lua
kernel. The game lua kernel is given direct access, via it's ctor,
to references of many of the things provided by resources. The
call back functions are modified to access these private reference
variables instead of resources, and they are added to the
scripting environment using the lua cpp function mechanism.

This greatly improves encapsulation and will eventually lead to
eliminating the resources pointers from the game lua kernel
entirely.
convert some null pointer dereferences into assertion failures
fixup replay reset: reconstruct the lua kernel