cmd/gc: run escape analysis in call graph dependency order
cmd/gc: run escape analysis in call graph dependency order

If there are mutually recursive functions, there is a cycle in
the dependency graph, so the order is actually dependency order
among the strongly connected components: mutually recursive
functions get put into the same batch and analyzed together.
(Until now the entire package was put in one batch.)

The non-recursive case (single function, maybe with some
closures inside) will be able to be more precise about inputs
that escape only back to outputs, but that is not implemented yet.

R=ken2
CC=golang-dev, lvd
http://codereview.appspot.com/6304050

dsriram/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,gnanderson/go,pombredanne/go-deleteme,pombredanne/go-deleteme,apparentlymart/golang,tv42/old-go,pombredanne/go-deleteme,gnanderson/go,tv42/old-go,tv42/old-go,pombredanne/go-deleteme,pombredanne/go-deleteme,dsriram/golang,gnanderson/go,apparentlymart/golang,gnanderson/go,tv42/old-go,gnanderson/go,dsriram/golang,gnanderson/go,tv42/old-go,tv42/old-go,pombredanne/go-deleteme,gnanderson/go,pombredanne/go-deleteme,apparentlymart/golang,dsriram/golang,dsriram/golang,dsriram/golang,dsriram/golang,tv42/old-go