Make `Functor` a superclass of `TrieMap`, which lets us derive the `map` functions.
I'm fairly sure in every case we define mapTM
naturally. So we can just derive it.
I think we could do Foldable
also, but that may be more involved since at least one instance uses a UniqFM
non-deterministically. Ergo, it is left for a future MR.