Add missing initialization
Add  TClingCallFunc::SetArg(float param)
In TPluginHandler::ExecPlugin use EDataType rather than the name for matches.

This is both faster and more stable
In TQSlot::ExecuteMethod use EDataType rather than the name for matches.

This is both faster and more stable
In TProofLog::Prt call Emit with the correct number of arguments
Add TClingCallFunc::SetArg taking a ULong_t
Migrate the definition of EReturnType to TInterpreter.

TInterpreter::EReturnType is declared as a scoped enum.

For backward compatibility we add an alias declaration (typedef) in
TMethodCall as well as static const of the 'correct' type (so that the enumerator
name can be used as before and are of the correct value and type).
minor typo
move function declaration (no functional change)
Add variadic template function CallFunc_SetArguments to properly dispatch args.

template <typename... T>
void CallFunc_SetArguments(CallFunc_t *func, const T&... args)

and is used in place where the elipsis might have been used to dispatch
the arguments to calls to CallFunc_SetArg with the 'right' type. (i.e. in
a typesafe manner).

Also to have the proper conversion add CallFunc_SetArg for char, short, int
to correctly cast them (as it was done in the past) to long and (new with
this patch) to unsigned long (depending of the signedness).
Add variadic template function TMethodCall::SetParams.

This is a simple wrapper around TInterpreter::CallFunc_SetArguments
Replace ellipsis ExecPlugin with a variadic template function

This fixes the serious problem that ExecPlugin was requiring the user
to pass exactly the type expected by the underlying function being
called and would silently do the wrong thing (read undefined/random
behavior) if the user did not pass the right types.
Remove code duplication (multiple CompressName related to TQObject)
Replace ellipsis TQConnection::ExecuteMethod and TQObject::EmitVA with a variadic template function

This fixes the serious problem witn these two methods which were requiring the user
to pass exactly the type expected by the underlying function being
called and would silently do the wrong thing (read undefined/random
behavior) if the user did not pass the right types.

This complete the removal of the near code duplication in
TQConnection::ExecuteMethod and TPluginManager::ExecPlugin (and getting rid
this duplicated *and* fatally flawed code)