scalding-core: merge flow step strategies to allow reducer estimation combined with other strategies

Reducer estimation works fine by itself, but if your job defines a custom flow step strategy that does something else, the reducer estimator strategy gets overwritten.  This PR does not modify any public APIs but simply runs strategies in sequence if one is present from the ExecutionContext.
why wrap with the Option here? Seems like redirection. Why not:
```scala
existing match {
  case null => strategy
  case nonNull => Monoid.plus(nonNull, strategy)
}
```