Resolve a memory leak by breaking a reference cycle in ARC.

The cycle orginates in `-[_DDFunctionExpression initWithFunction:arguments:error:] ` where each argument holds a strong reference to the function expression, and vise versa. This bug does not occur when using manual reference counting. Note that __unsafe_unretained does nothing when ARC is disabled, so you don't have to write a macro.