Register the temporaries in the list of temporaries.

TInterpreter::ExecInt could execute a function that returns a temporary (as
explained in one of my previous commit logs.). Eg.
std::string GetName() { return "AAA"; }

If that function was executed through ExecInt interface it would return a pointer
to an object with an undefined lifetime. In order to deal with that we have 
implemented a ref counted cling::StoredValueRef and a bridge to ROOT - TInterpreterValue.

Now we just need to stored in TCling's list of temporaries so that the ref counter
is increased by 1 and thus the object will be kept alive. 

PLEASE NOTE1: There is new interface TInterpreter::Exec that takes a 
TInterpreterValue object, which the user can use to define his/hers own lifetime
semantics. 
PLEASE NOTE2: TInterpreter::ExecInt temporary refcounting is implemented just 
for backward compatibility. Please use TInterpreter::Exec as stated above.
The main reason is that the variables are recorded in a list of variables, which
could be erased by anybody anytime, resulting in breaking everybody else's 
custom lifetime handling semantics.


git-svn-id: https://root.cern.ch/svn/root/trunk@48900 27541ba8-7e3a-0410-8455-c3a389f83636