compiler: look through aliases for type compatibility
compiler: look through aliases for type compatibility

Aliases are supposed to be identical to the type being aliased, so
questions about type compatibility need to always ignore aliases,
except for error messages involving the type name.

The test case for this is https://golang.org/cl/94995.

Fixes golang/go#23912

Change-Id: Ic3500b9689476239367d73dfd987ee91ea649a13
Reviewed-on: https://go-review.googlesource.com/94996
Reviewed-by: Than McIntosh <4b2922593166fc595a9b1a408f34f5d3817fe9d2@google.com>

golang/gofrontend,golang/gofrontend,golang/gofrontend,golang/gofrontend