rename variable_info_3 -> variable_info

the only reason thart this was called variable_info_3 is that it was my
third try to implement it (my second try that used boost::variant for
the differnet states turned out to be too slow)
refactor variable_info.cpp

this is a strict refactor which shouldn't change the compiled code.
get rid of preprocessor conditional

having 2 different implementations (one for c++11 and one for c++03)
makes the code harder to maintain.