Copy the tree definition for SSA2

As with previous copies, this is a temporary measure to keep the
existing compilation pipeline around while developing the multi-entry
pipeline.

This commit will be reverted after the new multi-entry pipeline is in
place.
Add multi-entry functions to the SSA2 IL

The multi-entry SSA2 IL looks very similar to the multi-entry SSA IL.
The changes were nearly identical to:

f46fd3d Loop through entries properly when tallying arguments
31378d1 Clean up function nodes properly after making a graph
fc7373c Update the start label for entries after alpha-renaming
32c3bad Hash both func name and entry name when hashing calls
f3e4ec7 SSA layout: add the function name when printing calls
e5dab21 Implement the SSA dominator forest
36efc8d Move start label from functions to function entries
83a10d5 Removed args from functions.
678227f First steps towards adding multi-entry functions to the SSA IL

Efforts were made to make sure that sections of SSA2 which had no text
diffs with SSA continued to have no text diffs after adding multi-entry
functions.
Merge pull request #1 from MatthewFluet/multi-entry-funcs

Multi-entry function updates

* fixes for compilation with SML/NJ
* add `-check-multi-entry {false|true}` command-line flag to conditionally exercise the multi-entry compilation pipeline
* fix unset property in `dominatorForest` calculation
* misc. simplifications