Client: Don't crash if trying to draw too many items from inventory in HUD
Add support for dpi based HUD scaling
Add support for (configurable) multiline hotbar
Improved screensize handling
Add userdefined gui scale by BlockMen
Only push the Lua error handler once
Remove dependency on marshal and many other async changes

This makes a number of changes:
  * Remove the dependency on marshal by using string.dump and loadstring.
  * Use lua_tolstring rather than having Lua functions pass string lengths to C++.
  * Move lua_api/l_async_events.* to cpp_api/s_async.*, where it belongs.
  * Make AsyncWorkerThread a child of ScriptApiBase, this removes some duplicate functionality.
  * Don't wait for async threads to shut down.  (Is this safe?  Might result in corruption if the thread is writing to a file.)
  * Pop more unused items from the stack
  * Code style fixes
  * Other misc changes
Fix code style of async API
Add support for function serialization to minetest.serialize
Fix rounding issue of hud dpi on some machines
Merge remote-tracking branch 'minetest/master'

Conflicts:
	src/defaultsettings.cpp
	src/script/cpp_api/s_entity.cpp
	src/script/lua_api/l_async_events.cpp
	src/script/lua_api/l_async_events.h