message: Removed scene context from state
  Modelled on native, only need the crumb to mount the Scene
diff: @@ -7,26 +7,20 @@ import SharedElementContext from './SharedElementContext';
  import SharedElementRegistry from './SharedElementRegistry';
  import withStateNavigator from './withStateNavigator';
  import { NavigationMotionProps } from './Props';
  -type NavigationMotionState = { scenes: { [crumbs: number]: NavigationEvent }, rest: boolean };
  +type NavigationMotionState = { rest: boolean };
  type SceneContext = { key: number, state: State, data: any, url: string, crumbs: Crumb[], nextState: State, nextData: any, mount: boolean };
  class NavigationMotion extends React.Component<NavigationMotionProps, NavigationMotionState> {
  private sharedElementRegistry = new SharedElementRegistry();
  constructor(props: NavigationMotionProps) {
  super(props);
  - var {navigationEvent, stateNavigator} = this.props;
  - var {state, crumbs} = stateNavigator.stateContext;
  - this.state = {scenes: {[crumbs.length]: state && navigationEvent}, rest: false};
  + this.state = {rest: false};
  }
  static defaultProps = {
  duration: 300
  }
  - static getDerivedStateFromProps(props: NavigationMotionProps, {scenes}: NavigationMotionState) {
  - var {navigationEvent, stateNavigator} = props;
  - var {crumbs} = stateNavigator.stateContext;
  - if (scenes[crumbs.length] === navigationEvent)
  - return null;
  - return {scenes: {...scenes, [crumbs.length]: navigationEvent}, rest: false};
  + static getDerivedStateFromProps(props: NavigationMotionProps, {rest}: NavigationMotionState) {
  + return !rest ? null : {rest: false};
  }
  getSharedElements() {
  var {crumbs, oldUrl} = this.props.stateNavigator.stateContext;
  @@ -37,13 +31,12 @@ class NavigationMotion extends React.Component<NavigationMotionProps, Navigation
  return [];
  }
  clearScene(index) {
  - this.setState(({scenes: prevScenes, rest: prevRest}) => {
  + this.setState(({rest: prevRest}) => {
  var scene = this.getScenes().filter(scene => scene.key === index)[0];
  if (!scene)
  this.sharedElementRegistry.unregisterSharedElement(index);
  - var scenes = {...prevScenes, [index]: scene ? prevScenes[index] : null};
  var rest = prevRest || (scene && scene.mount);
  - return (scenes[index] !== prevScenes[index] || rest !== prevRest) ? {scenes, rest} : null;
  + return (rest !== prevRest) ? {rest} : null;
  });
  }
  getScenes(): SceneContext[]{
  @@ -74,13 +67,8 @@ class NavigationMotion extends React.Component<NavigationMotionProps, Navigation
  onRest={({key}) => this.clearScene(key)}
  duration={duration}>
  {styles => (
  - styles.map(({data: {key, state, data}, style}) => {
  - var navigationEvent = this.state.scenes[key];
  - var scene = navigationEvent && (
  - <Scene navigationEvent={navigationEvent} stateNavigator={stateNavigator}>
  - {state.renderScene(data)}
  - </Scene>
  - );
  + styles.map(({data: {key, state, data, crumbs}, style}) => {
  + var scene = <Scene crumb={crumbs.length} />;
  return children(style, scene, key, crumbs.length === key, state, data)
  }).concat(
  sharedElementMotion && sharedElementMotion({
  