More test cases, more cases where the Go frontend needs to create a
temporary in the case of interface conversion. This is for map index
expressions and map composite literals. Also only flatten call
expressions once; they tend to appear in the tree multiple times.
Bootstrapped and ran Go testsui
Compiling more Go code revealed a couple more cases that need a
temporary for interface conversion. The first is passing an interface
value to panic. The second is when a temporary itself has a type that
forces conversion, which can happen in a return statement. This patch
adds them. Bootstrapp