fix issue 8997: always force implementation of AssociativeArray!(K,V)

This patch forces instantiation of AssociativeArray!(K,V) when a variable of type V[K] is declared. This is identical to declaring the variable as "AssociativeArray!(K,V) var;" in the first place. Otherwise a number of symbols are never produced.
I've put it into Declaration::semantic3() to void forward reference problems if it is run earlier.