setup particle calculation on the gpu

Works so far, but on my (nvidia 650ti) it's slower than on the cpu..
Merge remote-tracking branch 'origin/master' into GpuParticles
GPU/CPU switch with "G" key press

fix cuda shutdown
remove doubled function string push to lua stack. #76
add error check before lua_close() in destructor. #76
rename m_lua to m_state in LuaWrapper to match functionality better. #76
rename pushArgument to push because it just means to push a value onto the lua stack. #76
complete rework of function-calling. #76

* no more need to call callFunc() and fetchResults() seperately.
* function calling and return values receiving now with LuaWrapper::call<RetTypes...>(funcName, Args...)
* single return value just stored in variable reference, multiple return values stored in std::tuple unpacked with std::tie
hide lua.hpp from public again by removing it from luawrapper.h. #76
clean up and add const correctness. #76
fix bug causing the lua state to crash when calling a lua function after calling a lua function with no return values. #76
adjust sample luascript to return two values (int, string). #76
make popStack non-static. #76
use C++11 constexpr. 76
add basic version of LuaWrapper::Register() to register C-functions to Lua. #76

* no C++ objects at the moment :(
add LuaWrapper::Unregister(). 76
hide lua.hpp from header files. #76
Merge remote-tracking branch 'origin/master' into GpuParticles

Conflicts:
	src/particleemitter.cpp
	src/physicswrapper.cpp
	src/physicswrapper.h
	src/terrain/terraintile.cpp
	src/ui/eventhandler.cpp
Merge branch 'master' into GpuParticles
fix terrain changes while calculating particles on the gpu, add windows only ifdefs