Add mangle type casting to returns macro to workaround no mangling overload in gcc 4.6
Update the delegate constructor for gcc 4.6 to workaround no argument pack expansion in templates
Use workarounds for mangling overloads