Merge branch 'master' into win-port

Conflicts:
	CMakeLists.txt
	samples/lua/CMakeLists.txt
	samples/terrain/CMakeLists.txt
	samples/terrain/terrain_main.cpp
	src/CMakeLists.txt
	src/Config.h.in
	src/Device.cpp
	src/os/win/Mutex.h
	src/os/win/Thread.h
	src/renderers/gl/GLRenderer.h
game function defined in Game.cpp, now lua is the default bridge for gameplay developers
CE_ALIGNOF x-platform macro implemented
malloc removed
cmake files update
removed set_lightning from terrain_main (deprecated)
merge's garbage fixed, definition issues solved
game functions removed from C context
namespace crown removed
assert improved
game functions now have their right name
terrain sample restored to the original state
shutdown conflict
shutdown conflict
TODO: find the function that cause error 998(vs)
pointers to game functions removed, now device use function defined in Game.cpp
Game.h cleaned, Game.cpp now defines lua game functions
CE_EXPORT macro defined for exporting symbols, luaopen_libcrownlua exported
target name is always libcrownlua
crownlua linked to executable