About to remove ability to override by return type only BUT add in an automatic conversion where e.g. to->String becomes to_String->String.
Compiler now converts e.g. to->String to be to_String->String and obj->String to obj->to_String.
Removed ability to override by type only in order to better support cross compile.