cleanup scriptapi <-> core interface

This is a first step to cleanup core <-> scriptapi (mods) interface.

It introduces singleton handling for lua interfaces to avoid multiple pointers to same thing within different parts of minetest core.

There are three types of functions within scriptapi:

l_* functions:
those functions are called from within lua

scriptapi_* functions:
called from core in order to do something within lua. Functions of this class shouldn't have any lua specific parameters to avoid core needs information about lua.

all other functions:
helper functions to do something with lua but shouldn't be called from core or lua.