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