When possible, move __block variables to the heap rather than copying them.

Fixes <rdar://problem/13330126>.