Replace Reducer func type with ReduceStep interface as baseline.

The interface adds Complete(), one crucial part of the implementation,
and introduces structs for representing ReduceSteps. Also converts Chunk
to use its own stateful struct.
Refactor ChunkBy to stateful struct
Call Complete() from Seq and omg, tests green