Fix memory issue with weakify.

The use of unsafeify does not prevent a block from retaining a surrounding object.
So I added a blockify macro which uses (__block) and redefine weakify if ARC is disabled.