fix "player_id" during mp_connect/mp_wait

the value of "player_id" is only used to set the userlist in mpwait in
case there is no other userlist available (usualy there is another list
available) adding a side number doesn't make sense.

We also use a std::set for gathering the player_id values to make sure
there is no player_id twice.
dont read "player_id" attribute

its not persistent in savefiles nor it's a documented [side] attribute
rename "current_player" -> "reserved_for"

Conflicts:
	src/game_initialization/connect_engine.cpp
	src/game_initialization/connect_engine.hpp
fix variable_info.cpp

variable_as_array_h::operator() expects the range to be passed as a pair (startindex, endindex). We accidentally passed the range as (startindex, size) instead.

Shadowm reported bugs related to global variables but most likely this can also lead to segfaults in other situations (some uses of [set_variables]).