Miscellaneous improvements to TrieMap, from D608 code review.
Miscellaneous improvements to TrieMap, from D608 code review.

Summary:
    - Add SPECIALIZE pragmas for the lkG/xtG/mapG/fdG family of functions

    - Rename wrapEmptyXX to just emptyXX

    - New deBruijnize function for initializing DeBruijn elements

    - Some extra documentation

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>

Test Plan: validate

Reviewers: simonpj, austin

Subscribers: carter, thomie

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

GHC Trac Issues: #9960

vTurbine/ghc,oldmanmike/ghc,tjakway/ghcjvm,elieux/ghc,tjakway/ghcjvm,anton-dessiatov/ghc,sgillespie/ghc,ml9951/ghc,christiaanb/ghc,snoyberg/ghc,nkaretnikov/ghc,nkaretnikov/ghc,vTurbine/ghc,GaloisInc/halvm-ghc,gcampax/ghc,gridaphobe/ghc,GaloisInc/halvm-ghc,tjakway/ghcjvm,sdiehl/ghc,da-x/ghc,siddhanathan/ghc,shlevy/ghc,green-haskell/ghc,olsner/ghc,olsner/ghc,nkaretnikov/ghc,mettekou/ghc,shlevy/ghc,green-haskell/ghc,AlexanderPankiv/ghc,siddhanathan/ghc,mcschroeder/ghc,nushio3/ghc,ezyang/ghc,vikraman/ghc,christiaanb/ghc,acowley/ghc,mcschroeder/ghc,snoyberg/ghc,ezyang/ghc,da-x/ghc,wxwxwwxxx/ghc,GaloisInc/halvm-ghc,gcampax/ghc,snoyberg/ghc,fmthoma/ghc,elieux/ghc,TomMD/ghc,olsner/ghc,GaloisInc/halvm-ghc,nushio3/ghc,mcschroeder/ghc,da-x/ghc,vTurbine/ghc,wxwxwwxxx/ghc,mcschroeder/ghc,acowley/ghc,nkaretnikov/ghc,sgillespie/ghc,TomMD/ghc,nushio3/ghc,gridaphobe/ghc,sgillespie/ghc,anton-dessiatov/ghc,elieux/ghc,wxwxwwxxx/ghc,mfine/ghc,GaloisInc/halvm-ghc,mettekou/ghc,AlexanderPankiv/ghc,vikraman/ghc,ghc-android/ghc,da-x/ghc,vTurbine/ghc,mcschroeder/ghc,AlexanderPankiv/ghc,mcschroeder/ghc,fmthoma/ghc,gridaphobe/ghc,fmthoma/ghc,urbanslug/ghc,vikraman/ghc,AlexanderPankiv/ghc,mfine/ghc,nushio3/ghc,gridaphobe/ghc,ezyang/ghc,gridaphobe/ghc,christiaanb/ghc,oldmanmike/ghc,nushio3/ghc,da-x/ghc,TomMD/ghc,acowley/ghc,sdiehl/ghc,mfine/ghc,ml9951/ghc,nushio3/ghc,mfine/ghc,TomMD/ghc,snoyberg/ghc,oldmanmike/ghc,ml9951/ghc,ml9951/ghc,tjakway/ghcjvm,mcschroeder/ghc,urbanslug/ghc,ezyang/ghc,gridaphobe/ghc,nkaretnikov/ghc,ghc-android/ghc,acowley/ghc,snoyberg/ghc,oldmanmike/ghc,gridaphobe/ghc,ezyang/ghc,fmthoma/ghc,green-haskell/ghc,siddhanathan/ghc,AlexanderPankiv/ghc,ghc-android/ghc,mettekou/ghc,GaloisInc/halvm-ghc,wxwxwwxxx/ghc,shlevy/ghc,sdiehl/ghc,urbanslug/ghc,wxwxwwxxx/ghc,mfine/ghc,da-x/ghc,fmthoma/ghc,olsner/ghc,vikraman/ghc,ezyang/ghc,tjakway/ghcjvm,sgillespie/ghc,wxwxwwxxx/ghc,acowley/ghc,green-haskell/ghc,AlexanderPankiv/ghc,wxwxwwxxx/ghc,sgillespie/ghc,oldmanmike/ghc,siddhanathan/ghc,sdiehl/ghc,elieux/ghc,gcampax/ghc,oldmanmike/ghc,nkaretnikov/ghc,vTurbine/ghc,olsner/ghc,nushio3/ghc,tjakway/ghcjvm,ml9951/ghc,mettekou/ghc,tjakway/ghcjvm,olsner/ghc,shlevy/ghc,ml9951/ghc,urbanslug/ghc,shlevy/ghc,mfine/ghc,sdiehl/ghc,sdiehl/ghc,shlevy/ghc,ml9951/ghc,shlevy/ghc,TomMD/ghc,christiaanb/ghc,acowley/ghc,anton-dessiatov/ghc,sgillespie/ghc,snoyberg/ghc,snoyberg/ghc,urbanslug/ghc,gcampax/ghc,vikraman/ghc,ghc-android/ghc,elieux/ghc,olsner/ghc,fmthoma/ghc,vTurbine/ghc,urbanslug/ghc,vikraman/ghc,urbanslug/ghc,vTurbine/ghc,christiaanb/ghc,ghc-android/ghc,gcampax/ghc,anton-dessiatov/ghc,GaloisInc/halvm-ghc,mettekou/ghc,da-x/ghc,TomMD/ghc,siddhanathan/ghc,sdiehl/ghc,nkaretnikov/ghc,elieux/ghc,anton-dessiatov/ghc,sgillespie/ghc,ezyang/ghc,ghc-android/ghc,mfine/ghc,siddhanathan/ghc,christiaanb/ghc,anton-dessiatov/ghc,green-haskell/ghc,acowley/ghc,ml9951/ghc,gcampax/ghc,oldmanmike/ghc,AlexanderPankiv/ghc,christiaanb/ghc,siddhanathan/ghc,anton-dessiatov/ghc,ghc-android/ghc,TomMD/ghc,fmthoma/ghc,elieux/ghc,mettekou/ghc,mettekou/ghc,gcampax/ghc,vikraman/ghc