Support reentrance and asynchronous transitions
Merge pull request #34 from square/loganj/reentrance

Support reentrance and asynchronous transitions
AppFlow, by @loganj et al[1]

Massive update to the sample app. Introduces AppFlow, which may become
a bunch of static methods on Flow itself. Allows nesting of screens,
and lets (possibly nested) views fish their screens and the app-wide
flow out of the context, without injection trickiness.

Also ContainerView replaced with massively configurable
ScreenSwitcher, and a basic FrameScreenSwitcherView. Includes long
awaited save and restore of view hierarchies.

Much documentation and polish needed.

[1] @dnkoutso, @rjrjr, @pyricau