Added "scrollThen" that can apply a scroll animation before transitions

Related to issue #76

Usage:

    this.transition(
      this.fromRoute('posts'),
      this.use('scrollThen', 'toLeft'),
      this.reverse('scrollThen', 'toRight', {duration: 100})
    );

This solution works well but the resulting syntax feels like it won't be very DRY and could be difficult for a newcomer to reason about. Would something like the following be better? `first` would operate on the old view and `after` would operate on the new view.

    this.transition(
      this.fromRoute('posts'),
      this.first('scroll', {duration: 500}).use('toLeft'),
      this.reverse('toRight').after('scroll')
    );

And perhaps for a `liquid-if` that's used to display a form:

    this.transition(
      this.withinRoute('post'),
      this.toModel(true),
      this.use('toDown').after('scroll', {toElement: '#my-form'}),
      this.reverse('toUp')
    );