Mgv5 get ground level at point function. Fast spawn player version
Mgv5 1 up 1 down overgeneration for biome surface continuity
Optimise getTileInfo()

getTileInfo() ~1.5x faster
getSmoothLight ~2.0x faster
Optimise functions from CNodeDefManager and VoxelManipulator

CNodeDefManager::get()
VoxelManipulator::addArea()
serialize.h: use machine native byte swapping if available, fall-back to previous generic method if not (supported for GCC using endian.h, detection done in cmake) write/readARGB8() - just write 32-bit color in one op, instead of 4 1-byte ops cleanup: removed unneeded buffer init for some serialize-out functions use a #define for the fixed point factor in read/writeF1000()

nodemetadata.cpp, nodetimer.cpp
	optimzation: simpler deserialize node position method

staticobject.cpp:
	cleanup: use util/serialize.h inlines instead of its own de/serialization

serialize.cpp:
	minor optimization/cleanup: avoid generation of unneeded string temporary

CMakeLists.txt, cmake_config.h.in: detection of endian.h

config.h: added HAVE_ENDIAN_H

Commits due to feedback squashed

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
Update credits menu
Fix compiling if no endian.h found

f7d6509 introduces error when no endian.h found in the system.

Since "CHECK_INCLUDE_FILE" returns empty string instead of "0", when
"cmake_config.h" is generated it has "#define CMAKE_HAVE_ENDIAN_H " line.
Later we have "#define HAVE_ENDIAN_H CMAKE_HAVE_ENDIAN_H" in the
"config.h", an thus "HAVE_ENDIAN_H" is also empty sting. Because of
this, "#if HAVE_ENDIAN_H" is incorrect preprocessor directive.

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
Fix smooth lighting (ambient occlusion)

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
refactor main.cpp
Fix regression with USE_REDIS (refactor_main)
Port createForsythOptimizedMesh from Irrlicht 1.8

Mesh rotation helpers.
Fix console spaming by debug function on mod checking for global variable to exist.
Make duplicate warning checks file and line specific