Add function that translates subregister lane masks to other subregs.

This works like the composeSubRegisterIndices() function but transforms
a subregister lane mask instead of a subregister index.
Add const version of LiveRange::advanceTo
Add a 'covers' operation to LiveRange
Add support to track liveness of subregisters in a LiveInterval

This code adds the required data structures. Algorithms to compute it follow.
Compute subregister ranges in LiveIntervalAnalysis
Update SubRanges in LiveIntervalAnalysis::shrinkToUses()
Adapt LiveIntervalAnalysis::handleMove for subregister ranges
Adapt LiveRangeEdit::eliminateDeadDef for subregister liveness
Adapt LiveIntervalAnalysis::repairIntervalsInRange to subregister liveness
Add a flag to enable/disable subregister liveness
Introduce LiveQuery accessor for dead or live out values
Add subregister aware variants of LiveIntervalAnalysis::pruneValue
add LiveInterval::removeEmptySubRanges()
Preserve subregister liveranges in register coalescer.
Tablegen'erate lanemasks for register units

Now we can relate lanemasks in a virtual register to register units.
LiveIntervalUnion: allow specification of liverange when unifying/extracting

This allows it to add subregister ranges into the union.
Respect subregister liveness when allocating registers
Do not add implicit defs/uses when tracking subregister liveness
MachineVerifier: Allow LiveInterval segments to end at a partial write

In the subregister liveness tracking case we do not create implicit
reads on partial register writes anymore, still we need to produce a new
SSA value for partial writes so the live segment has to end.
MachineVerifier: allow physreg use if just a subreg is defined

We can't mark partially undefined registers, so we have to allow reading
a register in the machine verifier if just parts of a register are
defined.