debug: deal with more types, change "visited" check.
debug: deal with more types, change "visited" check.

Adds typedef, function, and void types.  Changes the "visited" check to use
(type, address) as the key, and always applies it.  These changes make the
printing of structs, channels, and interfaces slightly better too.

Change-Id: I4f2417f3bc12d277b12c6c7c2876d595b37166fb
Reviewed-on: https://go-review.googlesource.com/1873
Reviewed-by: Rob Pike <4dc7c9ec434ed06502767136789763ec11d2c4b7@golang.org>

golang/debug