add game_data::get_variable_accesss method.
move variable_info to own file

and also move game_data::temporarites_ to that file as a static
variable.

This fixes variable_info being dependent on game_data.
move partly [set_variables] code to variable_info class
add variable_info::clear method

move code from game_data

the plan is to make variable_info s member private.
add method variable_info::as_scalar_const
add variable_info::add_child method
add variable_info::as_array_throw method
make variable_info members private
make different functions for different variable access

the const_cast there is an improvement of the previous solution where we
just hided it by using resources::gamedata which is never const.
add comment about [insert_tag]
catch invalid variablename exception when using

these exceptiosn are not thrown yet in all cases. This patch prepares a
patch taht makes use of it.
refactor variable_info

we now use const correctness to ensure that we sont change teh game
config if we just want to read values.

Also we use a new algorithm that is a little slower when parsing small
variablenames and much faster when parsing long variablenames.
fixup build

the previous version only worked in msvc which has a nonstandard two phase lookup implementaion.
fixup build

we have to use this-> in templatd classes the derive from other template
classes
fixup build

we need to put the explicit instantiation after the definition
add comments in variable_info
optimize variable_info

we now don't  check for '.', '[', ']' twice.
add newline at end of file
add variable_access test case
make [set_varialbes] mode=replace as default

this was the previous behaviour.
It was broken in variable_info refactor.