Experimental aura cache and accessors.

This should avoid "seq-scanning" the auras several times to find specific player auras.
UnitAura is not accessible in rules but there are specific accessors, e.g. GetPlayerBuff(unit, id), IterateDebuffs(unit), ...