Extract the write methods into a display builder in the checker

Rather than having all the writeType/writeSymbol/writeSignature...etc methods on the checker, I am extracting them into a new object, the display builder. I've also changed their names to buildDisplay... This is so that we can add display building for lots of different constructs without worrying about polluting the member space of the TypeChecker.

Apologies for the large diff. Please note that I really didn't change any algorithms here, just architecture.