use_interface and use_unknown now do not take raw pointers. Created a function reinterpret_portable_base (like reinterpret_cast) that has to be used with a raw pointer
Add r-value overloads to use_unknown for use_interface
Latest
Added const to implement_interface::get_use_interface to make sure l-value overload of use_unknown gets used if called with imp.get_use_interface(). To do this changed operator() in cross_function_implementation_base to NOT use std::forward