Add intersprerse and intercalate functions

`intersperse` is just like the one in `Data.List`. It is
implemented using `mapMulFT` for optimal performance.

`intercalate` is also just like the one in `Data.List`. It is
implemented using a strict fold.