Use SDoc for all pretty-printing

This patch also reworks quite a bit of the pretty-printing code to use
SDoc/Outputable throughout and prefer 'ptext (sLit "bla")' to the less
efficient 'text "bla"'. Note that many get*Name functions become pp*Name
here as a side-effect.
Eliminate usage of literals with "text" completely

Until we figure out how to get the text/str rule working, this is just
GHC best practice, I think.
Extend globals to aliases

Also give them a proper constructor - getGlobalVar and getGlobalValue
map directly to the accessors.