Fix that array indexing cause dependency to be broken 

This pull request is to fix [MAGN-4046 memory corruption for array indexing] (http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4046). Basically it is because multiple array indexing cause previous dependency to be removed. For example:
```
a = {};
a["x"] = x;
a["y"] = y;
```
The second assignment removes the dependency between ``a["x"]`` and ``x``. And because of SSA, in some subtle cases the array will be double-released which lead to the memory corruption. 

The fix is to push string index into graph nodes' dimension list. 

The pull request also includes some low-risk code cleanup work in associative graph, e.g., removing redundant namespace prefix, renaming member function IsEqual() to Equals() for multiple classes and removing some dead code/comment.