hRaven Reducer Estimator

Adds new "scalding-hraven" module with an estimator that looks up job history in hRaven to determine the actual amount of bytes reaching reducers. The `HRavenHistory` trait can be added to a `ReducerEstimator` to add functionality for looking up job history, and the `RatioBasedReducerEstimator` does this, scaling the estimate provided by `InputSizeReducerEstimator` based on the past ratio between mapper/reducer input sizes.

This PR also includes a couple other minor changes:
- Using a case class as argument to `estimateReducers` to hold the common reducer estimator info (`flow`,`step`,`predecessorSteps`)
- Add optional `fallbackEstimator` which lets estimators be chained

So far I don't have a story for unit testing hRaven. Any ideas are welcome.
I guess what I'm trying to figure out is what the expected extensions/reuse patterns will be. I suppose there are probably several different services which could provide job history info, so abstracting out hRaven is fine in this regard. But I imagine most new estimators would try to incorporate new job info, such as the distribution of reducer times. The HRavenHistoryService could provide additional functions for retrieving that info for those estimators that need more specific data. Then the question becomes what should go in the core history info object (in scalding-core), and what is specific to hRaven.

I think I've talked myself into a design idea, which I'll try, and you can let me know what you think.