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
Make debug text adjust it's border to the screensize and fix a border update bug
Add download rate to media progress bar (non http mode only!)
Minor coding style fixes
Add proper lua api deprecated handling
Fix usage of deprecated functions in builtin
Add hack to avoid 2s startup delay on local games
Fix player:set_animation() in third person view
Fix numeric underflow on calculating window size adjustment