"Events API" updated: 2 - new API + event callbacks

2 new API functions:

is_nil(val) - used for checking whether or not a provided value is "nil" (either nil or a null string character \0)

convert_variable_args(...) - converts a tuple into a table array that preserves the positions of nil as null string character \0

2 new event callbacks

event.after_event - ran after ALL event.funcs have been called by event.handler(...). First parameter (funcsdata) is a list of funcdata that contain an id (table index in data.funcs), func (actual function), and returned (values returned by called function, respects positions of nil with null string character \0). Other parameters will be the tuple provided by event.handler(...). Good for being used in implementations similar to core.register_on_placenode`, doing unique things depending on what a function returns

event.prior_to_each_handler_func - ran prior to EACH AND EVERY function in events.funcs. First parameter funcdata is a table that contains an id (table index in data.funcs) and func (actual function). Other parameters will be the tuple provided by event.handler(...). Can be used for randomizing fields or cloning tables on a per-function basis. Expects same return tuple order of the events.handler function (unless you've programmed this purposefully to do something different, why?)