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.
Merge pull request #2699 from richdougherty/iteratee-step

Optimize private Iteratees' contruction of Step objects