Generalized `Consumer`s in Pipes.Prelude to `Consumer'`s
Generalized `foldl` and `foldM`

This is so that they will work with the upcoming `foldl` package