aco: use average use distances as spilling heuristic
This MR replaces the MIN algorithm from the paper "Register Spilling and Live-Range Splitting for SSA-Form Programs" by Matthias Braun and Sebastian Hack by a simplified version. Key difference between this algorithm and the MIN-algorithm from the paper is the use of average use distances rather than next-use distances per instruction. As we decrement the number of remaining uses, the average use distances give an approximation of the next-use distances while being computationally and memory-wise less expensive.
based on !27774 (merged)