Port many SSA and SSA2 optimization passes to multi-entry.

This pull request converts many of the simple SSA and SSA2 optimization passes to multi-entry.  Many of the conversions were trivial (the entries were unused by the analysis and were simply copied unchanged to the transformed function).  The other conversions had no significant difficulties with multi-entry.  The remaining unconverted SSA and SSA2 optimization passes may require more significant changes to handle multi-entry.  In addition, there are a few additional changes:

1f6e6a7 Change the type of `main` field in {SsaTree,SsaTree2}.Program.T to `{func: Func.t, entry: Entry.t}` (as discussed in c536cac).
e1ce00d Move DuplicateEntries pass to front of SSA simplify pipeline, so subsequent passes must handle truly multiple entry functions.
1391278 Revise DuplicateEntries pass to simplify transformation and to use new entries.