Decoupled and combined transition classes

Hi Pete, thank you so much for creating this project, it's a fantastic resource. So much that I wanted to use this in my own project, but wanted to take a pass at cleaning up its interface first.

So now there's just one transition class (`DSLTransition`) which knows nothing of the View Controllers participating in the transition, other than they must comply to the `DSLTransitionDataSource` protocol. In fact, it'd be trivial to even extend this protocol to also have a `-viewToTransferForKey:` method to animate any number of views in a transition simultaneously.

Let me know if that's something you'd be interested in.

Thanks again for the great project and let me know if there's anything I can do in this PR to allow you to merge it in!