Improve the tracking of block-local variables.

Removes the IceVariable::IsMultiblockLife field and consolidates the
logic into IceVariable::DefOrUseNode.  This means that we have to know
what IceCfgNode we're currently in whenever a new IceVariable is
created.  DefOrUseNode is initialized to the creating node, and then
reset to NULL if it is used in a different node.  Also, when
dumping/emitting an IceVariable, the IceOstream keeps track of the
current node for validation purposes.

The reason for this is so that we can accurately deal with
IceVariable-to-IceCfgNode sparsity to improve the performance of
liveness analysis.
Rename IceLiveness --> IceLivenessMode.
Improve performance of liveness analysis by leveraging sparsity.

The original code used full-size vectors to analyze liveness in each
basic block.  These vectors are:
  - LiveIn: bitvector of live variables at block entry
  - LiveOut: bitvector of live variables at block exit
  - Live: scratch bitvector for inst-by-inst tracking within a block
  - LiveBegin: vector tracking inst number beginning the live range
  - LiveEnd: vector tracking inst number ending the live range

These vectors were mostly empty because thanks to SSA, most variables'
live ranges are contained within a single basic block.  Liveness
analysis was spending a lot of time merging large bitvectors, and even
more time constructing live range segments.

The improvement is to compress the vectors such that the first
elements are for "global" variables whose live ranges may span
multiple blocks, and the latter elements are for "local" variables
whose live ranges are known to be local to the block.  LiveIn and
LiveOut get merged across block boundaries, but they are guaranteed to
hold entries only for global variables.

On my laptop, the translate() time for bigfunc.pnacl.ll drops from
about 110ms to about 40ms.

As another improvement to the data structures, most of the
liveness-related containers are isolated into the IceLiveness class.
This will help with arena-based allocation.  There are still some
liveness and register allocation related non-container fields that
could be pulled out if really needed.