Add windowFlatMapWithState function to DistributedUtil.

Reimplement pileup flatmap functions using windowFlatMapWithState, which drops a bunch of redundant code. Remove original window flatmap function.
Do we need the classtags?  Also, I don't know if I understand the state variable - it can just be anything that is related from locus to locus?  Is there an example of it being used, its just None in the other function correct?