Fix raillike bug (currently manifests itself on Android), and minor improvement to readability.

NB: Minor edits to patch made by Zeno- (int to short and minor formatting)
Fix leaking global in texture pack menu
Simplify loading of Android version of menu
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
Adjust the values of dirs1 and dirs2 so that rotate_and_place orients textures correctly

According to doc/lua_api.txt if paramtype2 == "facedir" the two least significant bits of parm2 orient the texture around the axis. For dirs1 (looking at a wall) these would be 0, 1, 2, 3 and for dirs2 (looking at the ceiling) 2, 1, 0, 3
Fixes for Android build errors. Enable sensor landscape rotation.

Fix typo in Android Makefile ndk path.
Fix touchscreen parts of game.cpp to work after Zeno's refactor.
Fix isdigit and isspace overload conflict with Android Irrlicht in string.h
Enable sensor landscape rotation in Android Manifiest.
Add mapgen v5 to Android build.
Fix Makefile not checking leveldb.

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
Fix client "double saving" simple singleplayer local maps
Increase step smoothing to fit 1:1 stairs (works well on slabs too)

Signed-off-by: Craig Robbins <kde.psych@gmail.com>