fix concurrency issue in pids.uqb test program

interpreter and .qbc program were both wrong. that it was working at all
was a surprising fluke
improve qbrt error handling
fix bug referencing invalid registers

programs can no longer reference argument params that are not allocated.
avoids bugs like $0 and %0 pointing to the same register.