Support for views with 3D transforms applied.

Very nice animation, but this commit uses drawViewHierarchyInRect to ensure that 3D transformations are captured, which renderInContext does not. Easy example, try your previous code with a UIPickerView, and notice that all of the components are in the wrong spot during the animation.

One possible bug in these dispatch_syncs, it only seems to happen on your "Random" direction example, is an occasional flash as the animation starts. If you remove the dispatch_syncs, you'll see that an animation going from 0 to 1 alpha will not render. 

I'm not sure the problem exactly, but I wanted to show you the few updates I've made, see if you had any ideas.

Tj-