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.