Use Data.Map.mergeWithKey

Summary: now that we can rely on having containers > 0.5.

Reviewers: austin

Subscribers: thomie, carter, ezyang, simonmar

Differential Revision: https://phabricator.haskell.org/D321