new AssociativeArray implementation

This PR is the next step to creating AA as full library type. 
Next step is replacing object.AssociativeArray with this AssociativeArray.
After that we should provide our AssociativeArray all functions which have builtin AA. (There are some language changes needed).
At the end of this way we'll able to replace V[K] type with AssociativeArray!(K, V) automatically during semantic and remove most of special AA cases/hacks from compiler.