Setuping Game Sessions and Game Instance

Creating two classes for managing global GameState and GameSessions.
GameSessions manages networking between players.
GameInstance knows in what State is the Game (main menu, playing, etc..), and change the state when needed. At the beginning, GameInstance set the game in main menu state.
In futur development, it also will manage Player how want to join the game and create
some GameSession.
TO DO next :
- Create a main menu when setting the main menu state
- Display the main menu in the viewport

* Creating a FTGCOGameSessionsParams struct that contains :
	* SessionName
	* bIsLan : is it a Lan session ?
	* bIsPresence : is the session enabled for searching ?
	* UserId : The id of the user that initiating action
	* iBestSessionIdx : The current search result choice to join
* Creating a ATGCOGameSession class
	* Creating a static variables DEFAULT_NUM_PLAYERS = 2
	* Creating a FTGCOGameSessionsParams variables : CurrentSessionParams
* Creating a namespace TGCOGameInstanceState
	* Creating FName variables in it
		*	None
		*	WelcomeScreen
		*	MainMenu
		*	Playing
* Creating a UTGCOGameInstance class
	* Creating some public functions
		* 	Tick
		*	GetGameSession
		*	Init
		*	StartGameInstance
		*	GotoState
		*	GetInitialState
		*	GotoInitialState
	* Creating some private functions
		* 	MaybeChangeState
		*	EndCurrentState
		*	BeginNewState
		*	BeginWelcomeScreenState
		*	BeginMainMenuState
		*	BeginPlayingState
		*	EndWelcomeScreenState
		*	EndMainMenuState
		*	EndPlayingState
	* Creating some variables
		* 	CurrentState
		*	PendingState
		*	TickDelegate
* Linking this UTGOGameInstance with the game in the config file