SSA layout: add the function name when printing calls

The original intention for the 'entry' field of the Transfer.Call
constructor was that the 'entry' would be the main way that a function was
referred to.  Leaving 'func' in was just a way to get the name of the
parent function for some passes.

Since then, I've noticed myself creating function entries with names
that aren't very useful on their own, such as "default".  They're still
fine as labels, since they'll be alpha-renamed to be unique, but when
printing out an SSA program it's a lot more useful to see the name of
the function that is being called, instead of just the entry point.
Hash both func name and entry name when hashing calls

Function entries will never belong to more that one function, but it
seems reasonable to include the function name in the hash anyways.
Update the start label for entries after alpha-renaming

This was a step that I missed when adding multiple entry points to
functions.  Origionally, the start label for the function was updated
after doing all of the alpha-renaming.  All of the entry points to the
function need to have their start labels updated.
Clean up function nodes properly after making a graph

The 'destroy' function for Funcs was shadowed by the 'destroy' function
for function entries.  This change gives both destroy functions unique
names and calls both of them at the end.
Loop through entries properly when tallying arguments

The first change to this function erroniously looped through *blocks*
tallying their arguments.  That's already done further down in the
function; the change was supposed to tally the arguments to the entry
points.  This change correctly steps through the arguments of all of the
entries.