flatMap overloads

- migrate mapPair to use actual merge instead of reimplementing it
- deprecate mergeMap

Done during API review with @headinthebox