Use symbol links to access global array type

Existing code uses `globalArrayType` to make array types. However accessing this value directly might fail if at this moment `globalArrayType` is not yet initialized - this might happen if user code contains augmentation for `Array<T>` that includes call signatures with arrays as parameter types\return types. 
Normally recursive type references are handled by picking type from the `SymbolLinks` for the type symbol. Switch to the same approach for `globalArrayType` - store `globalArrayTypeLinks` and use `globalArrayTypeLinks.declaringType` instead of picking `globalArrayType` itself.
 
Fixes #233
Seems like roots and instantiations here are mixed in terms of naming.