go/types: correct result type for append (bug fix)
go/types: correct result type for append (bug fix)

Rewrote existing code to prevent similar mistakes.

R=adonovan
CC=golang-dev
https://codereview.appspot.com/7129046

wesolows/golang,firebitsbr/golang-old,wesolows/golang-old,wesolows/golang-old,wesolows/golang-old,wesolows/golang-old,wesolows/golang,firebitsbr/golang-old,firebitsbr/golang-old,wesolows/golang-old,wesolows/golang,firebitsbr/golang-old,firebitsbr/golang-old,wesolows/golang,firebitsbr/golang-old,firebitsbr/golang-old,wesolows/golang,wesolows/golang-old,wesolows/golang-old,firebitsbr/golang-old,wesolows/golang,wesolows/golang