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.
Merge pull request #1 from gyratorycircus/master

Excellent fix. Thanks @gyratorycircus.
This is particularly important if the view controllers are being reused, as previously this could leave the container in a state such that there was no visible view controller. If the view controllers were always different objects this issue did not manifest.