Added ReplicateM and Join combinators with unit tests