freedreno/a3xx: rework format logic to go into a single table

In the process, this also adds support for a bunch of formats that were
previously unsupported since it is now very straightforward to do so.

After creating this table, I realized that there are significant issues
with rendering to int formats, so there's a hard disable on all of those
for now.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
freedreno/a3xx: don't clamp fragment color post-blend for float formats

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
WIP freedreno/ir3: add POPC/BREV/MSB/LSB opcode support

These are part of GLES3.1 and ARB_gpu_shader5. The bitfield
extract/insert operations are still to be done.

XXX this apparently doesn't work... maybe the opcodes aren't really
there?

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
WIP freedreno/ir3: add TG4 support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
WIP freedreno/ir3: fix UMAD to use right mad instruction variant

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
freedreno/ir3: add system value support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
freedreno: pass number of instances to draw

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
WIP int rb
WIP srgb rb