Evict registers from the cache based on LRU.

The old method would always evict the first suitable register, i.e. the
same register every time once the cache got full.  The cache doesn't get
full terribly often, but the result is pathological...
Should probably be initialized at some point.

Possibly at the start of each block, otherwise you have an edge case when this wraps around.