Fixes animation race condition caused by quick transitions. Saving setting _viewController ivar outside of the animation ensures the 'current' controller is always known, and the animation completion block compares controllers prior to erroneously removing the 'current' controller. Also improving animations in quick transitions by reversing the fade directionality. Fading-in the new view could leave all views nearly translucent during quick transitions, but fading-out the old view allows there to always be a new opaque view behind it.