I don't think I understand this.  Why is AvocadoConfigAndStats initialized before the input stage and then attach reads after? 

AvocadoConfigAndStats is an input to the input stage, but it seems only to access the spark context and load reads in.  I think we could either separate out an AvocadoContext to handle that (unless there is a separate need in the future for that?)  This might make lead to separating Config and Stats all together.

If not, then at least when stats is used to the load the reads, it would make sense to attach them there as well?