compiler: add new debugging helper function debug_go_type()

Add a new debugging utility routine debug_go_type(), intended to
display the contents of a Type object in a way useful to debugging
a run of the compiler.  Prior to this the only useful alternative
for debugging types was invoking the mangled_name() method, which
has problems (for example, won't work on interface types prior
to finalizing of methods).

This is a "deep" dump, meaning that all types reachable from the
type passed to debug_go_type() will be printed out. Example:

(gdb) print debug_go_type(t1)
      T0        0x535f300  'net/http.Header' -> T1
      T1        0x535d3d0  map ['string' -> string] T4
      T2        0x5304bb0  'string' -> string
      T3        0x331f900  string
      T4        0x535d370  array [] 'string' -> string

Change-Id: Idd6f20d424f695f8e184b16a95f5f6a2fc0a77bb
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166637
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 files changed