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
Revert the icon name in minetest.desktop

This reverts commit 7993696fc4b59354974059e1f8d6b3063d316411, which broke the
icon on most distributions.
Fix locking bugs and make inventory deserialization errors more specific
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
Merge commit '2ae5d3f'

Conflicts:
	src/settings.h
Merge commit '6bc4cad'

Conflicts:
	build/android/jni/Android.mk
	src/CMakeLists.txt
	src/clientiface.cpp
	src/database-leveldb.cpp
	src/environment.cpp
	src/nodedef.cpp
	src/settings.h
Merge commit 'c061bdd'

Conflicts:
	src/server.cpp
Merge commit 'f6321e2'

Conflicts:
	misc/freeminer.desktop
Merge commit '3e7e658'
Merge commit 'b5a6bf2'