Convert direct expressions to the multi-entry SSA IL

Function calls must now specify a function entry point, so DirectExp.t
must be updated to include them.
Convert SSA Analyze to the multi-entry SSA IL

Calls now require entry points and functions no longer take arguments
(the entry points take arguments now), so some analysis for functions
was moved to entry points.  In the case of arguments, all arguments of
all entry points are processed by 'analyze'.
Convert SSA type checker to multi-entry SSA (partially)

This change converts the type checker so that existing type-checking
rules continue to work in the multi-entry SSA IL world.

This change does not add any rules specific to functions with multiple
entry points, such as checking to make sure that a Transfer.Call matches
up with the arguments of the entry point being called.  These will
appear in a later commit.

Type checking profiling statements in incomplete: right now the type
checker can only make sure that Enter and Leave profile statements are
matched for functions weith single entry points.  Supporting multiple
entry points with profiling will appear in a later commit.
Convert the SSA PrePasses functor to the multi-entry IL
Convert the Shrink functor to the multi-entry SSA IL
Convert the SSA restore functor to the multi-entry SSA IL

The major change in this commit is how extra entry blocks are added
before calculating the phi functions.  Instead of adding a new entry
block at the beginning of a function, we add a new entry block for each
function entry.  After the phi functions have been added, the entry
blocks are rebuilt again.
Convert SSA Simplify to the multi-entry SSA IL (partially)

This change updates SSA Simplify to work with multi-entry functions.
Since Simplify primarily delegates to other passes, this was a matter of
commenting out all but the most essential passes.  The two mandatory
passes that weren't commented out are PolyEqual and PolyHash.

PolyEqual and PolyHash were converted in similar ways.  The addition of
entry points to functions means that callers must know both the function
being called and the function entry being called.  So, all that needed
to be done was make sure that both were being passed around when they
were being added to the property lists.
Export a multi-entry SSA functor

A new functor, MeSsa now exports a multi-entry SSA IL.  This is the
culmination of:

ddd66b1 Convert SSA Simplify to the multi-entry SSA IL (partially)
48134ba Convert the SSA restore functor to the multi-entry SSA IL
4910911 Convert the Shrink functor to the multi-entry SSA IL
24722bb Convert the SSA PrePasses functor to the multi-entry IL
251bd86 Convert SSA type checker to multi-entry SSA (partially)
70cf8a7 Convert SSA Analyze to the multi-entry SSA IL
7ba79bb Convert direct expressions to the multi-entry SSA IL
ca73cbd Copy SSA passes that are necessary for the Ssa functor

As noted in those commits, this is a step towards getting a minimal
pipeline supporting multi-entry functions.  The next step is to connect
the closure converter to this new functor.