Fix a recently introduced bug in the SSA labeling.

To perform the actual SSA translation, we needed to know which
BasicBlock each incoming value for a phi node came from.  A few commits
ago, I just tagged each incoming phi node with that information
when we added values to phi nodes.  Unfortunately, this introduced
a problem with trivial phi node detection.  If a phi node consisted of
only a single value before, it would be eliminated as trivial.  With
this change, that did not occur if a phi node was composed only of a
single value that came from *different* predecessor blocks (the block
numbers made them unique, so they weren't eliminated).  Example phi
node:

>  PhiLabel 1 [(0, SimpleLabel 4), (3, SimpleLabel 4)] 8

That is, phi node 8 (in BasicBlock 1) has a single incoming value: value
4.  However, this value came from two different blocks: 0 and 3.  These
are unique because the block numbers are different and thus phi node 8
wasn't being eliminated and replaced by value 4.

This change stores block numbers for incoming values separately and only
looks that information up when it is needed (much later, during
translation).  Trivial phi elimination works again.
The easy translation cases are handled
Save enough metadata to finish translating the move-exception instruction

We needed to record the exception handled by each exception
handling block so we can determine the type introduced by
the move-exception instruction.
Stub out the LoadConst translation

Still have to decide precisely how to handle constants, but the effects
of the instruction are handled.