iOS 7 style animations and swipe-to-navigate-back functionality

I've cleanly broken the changes into several commits so that it's easier to see how each change (whether that be refactoring push, refactoring pop, adding the swipe behavior, etc.) happened by itself.