escape: Avoid allocation of varargs parameter.
escape: Avoid allocation of varargs parameter.

There was a bug in the escape analysis that would cause
the slice implicitly created to hold varargs parameters to always
escape, as well as the appended to slice argument.  The intended
behavior was that the elements of the appendee and appended to
slice would escape to the heap.  Alongside of these issues,
the varargs slice would also have a chance to be initialized to an
invalid memory location if it were stack-allocated.  This has been
fixed as well.

Change-Id: I9474032d4d29c5718fa79d07401d0b1a744186d8
Reviewed-on: https://go-review.googlesource.com/30450
Reviewed-by: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@golang.org>

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