Added MapM combinator with unit tests