Optimisation for delegate message forwarding

Looks like forwardInvocation: is an overhead for calling delegate methods in this case. Only target should be changed, arguments and selector are unmodified.