luaL_newmetatableint luaL_newmetatable (lua_State *L, const char *tname);
If the registry already has the key tname,
returns 0.
Otherwise,
creates a new table to be used as a metatable for userdata,
adds it to the registry with key tname,
and returns 1.
In both cases pushes onto the stack the final value associated
with tname in the registry.