WIP: freedreno/a3xx/compiler: relative addressing (const)..

NOTE: doing address calculation in full precision and then narrowing to
s16 in the mov to addr reg seems to sometimes cause lockups (and
sometimes work?!).  It seems more reliable to do the address calculation
in s16, like the blob does.  Which means teaching RA how to deal with
mixed half and full precision allocation.  Fortunately that didn't turn
out to be too hard, so that is a nice bonus.
HACK: add test harness and simulator/emulator

Feed in TGSI, and it compiles with both old and new compiler, and runs
resulting shader through emulator with same set of randomized inputs.  A
convenient way to test the new compiler.

Long term, maybe break the simulator out into a stand alone thing (which
takes ir3 asm as input??), since it is probably useful to keep even
after old compiler is removed.
HACK: bump up shader max size..

TODO grow dynamicly..