Intelligent defaults for Transition types

Change the transitions algorithm in the following way:

* [ ] Slide is the default transition type for iOS (if direction detected)
* [ ] Scale is the default transition type for Android (if direction detected)
* [ ] scale shouldn't start from `scale(0,0)`, but `scale(0.9,0.9)` or similar
* [ ] use a more semantic definition for custom transitions: e.g.: `state.data.modal = true` => transition: cover, no navbar etc.
* [ ] you can still set a custom transition with `state.data.transition` following the reverse/normal convention, but you won't really need it any longer