issue 13410 -- Performance problem with associative array byKey/byValue

Caches first non-null bucket for further lookups. Only calculates cache when byKey or byValue is requested. Based on patch from bug report by ketmar.

Fixes: https://issues.dlang.org/show_bug.cgi?id=13410
Note, I couldn't do this specific one, because `_aaGetHash` takes `in` AA.