Adding support for tuples
Passes simple tuple<int,string> test
Renamed *pair to *cross_pair for tuple support functions
tuple<int,string,double> compiles with MSVC, but not yet with gcc
tuple<int,string,double> working now on both msvc and gcc
tuple<int,string,double,char> works
Simplified QueryInterface in use<>, Added QueryInterface(NoThrow) to implement_runtime_class. Added tests for tuple<int,string,double,char,use<ITestTuple>