Move register hints to the vasm instruction macros.

Summary: @jasone and I both have run into bugs with the way the register hinting
code is organized. This adds DH and UH macros (def hint, use hint)
that avoid needing the nasty switch, and don't require all those
instructions to have identical operand names.

Reviewed By: @swtaarrs

Differential Revision: D1570915
Don't allow split before phidef in the same block.

Summary: If a phidef caused another interval to be split and spilled,
the split position could be just before the phidef in the same
block, which is illegal. Fix the nearestSplitPosition to
be the start of the block, which forces copies to the edge.

Added an assert that checks we don't try to copy two different
intervals to the same physical register along the same edge.
(which fires before this fix).

Reviewed By: @alexmalyshev

Differential Revision: D1568347