runtime: fix heapdump bugs.
runtime: fix heapdump bugs.

Iterate the right number of times in arrays and channels.
Handle channels with zero-sized objects in them.
Output longer type names if we have them.
Compute argument offset correctly.

LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://codereview.appspot.com/82980043

apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang