More familiar `scanl`; add `mapAccum`, `mapAccumM`

Made `scanl` more closely resemble `Prelude.scanl`.
Added `mapAccum` and `mapAccumM` to replace previous `scanl` and to be analogous to `Data.Traversable.mapAccumL`.