Make getters of the Settings class const

Also removed 2 unused functions.
Use const references for Settings methods

Also check for (this == &other) before locking mutexes.
Fix Settings locking
Split settings into seperate source and header files

This also cleans up settings a bit
Fix locking bugs and make inventory deserialization errors more specific
Revert the icon name in minetest.desktop

This reverts commit 7993696fc4b59354974059e1f8d6b3063d316411, which broke the
icon on most distributions.
Update ja/minetest.po
Add inventory right click drag and drop
Fix GCC reorder warning

Caused by a020d1b653f94fbcaac06c15f9dbab4521fda355.
Make dump's output prettier

Changes:
  * Indentation with tabs by default.
  * Array keys dumped without "[i] = " prefix.
  * String keys that are valid identifiers aren't enclosed in '[""]'.
  * Basic support for multiple references (as specified in the comment).
Update default of preload_item_visuals in minetest.conf.example
Add firelike drawtype
Fix build with redis

Broken by 6bc4cad0eddd7a7cf593ca1471599e2d75727379 because database-redis.h
depended on settings.h to include filesys.h.
Fix command line parsing

Broken by 6bc4cad0eddd7a7cf593ca1471599e2d75727379, e.g.
  minetest --worldname world
would be parsed as
  minetest --worldname --worldname
Fix chat lines not word wrapped correct
Fix totally messed up 3d modes interlaced/topbottom/sidebyside
Fix multilined description in tooltips (fixes #1688)