aco: SGPR allocation granularity/limits and occupancy estimation improvements
This MR makes ACO aware of GFX8/GFX9's increased allocation granularity and GFX10's fixed SGPR allocation and takes LDS into account when calculating Program::num_waves
. To help keep pipeline-db useful, it causes ACO to report unrounded vgpr/sgpr counts instead of how much is actually allocated.
It also has some cleanups to deduplicate code and make the XNACK_MASK/FLAT_SCR registers handled a bit better.