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.