Fix crash when GameState has no viewport system
Fix ownership transfer of systems when adding new GameState from Lua
Add GameState bindings to Lua

They don't contain anything (yet), but are required because
System::init takes a GameState parameter.
Expose Engine::setCurrentGameState to Lua
Add GameState testing script