Optimize private Iteratees' contruction of Step objects

For Iteratees where we already know the Step, we can extend Step to avoid creating a separate object. This avoids object creations and also avoids needing a lazy val. This change only affects Play's private iteratee implementations. There is no public API change.