Adjust operand count of phi nodes where proxy blocks replace multiple edges.

In the presence of switch statements, multiple edges may exist between two
basic blocks that we want to divide by a proxy block in order to remove
aliasing. There is a corresponding number of operands in the phi node of the
target block referring to the same source block. Since these edges are replaced
by a single one from the proxy block to the target block, only one operand
referring to the proxy block may remain in the phi node.

This fixes #28.