freedreno, turnip: Cleanup guardband calculation

Replace the mystery-meat function with something similar to what's done for Intel and AMD and is actually well-justified with a theory of how the HW works and matches the a3xx docs.

As mentioned in the first commit, I couldn't get it to exactly match what the blob computes, but I think that's because there's some precision issue in the blob. In the cases I've examined we compute the same result within 1 ulb.

Merge request reports