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
Add more explanation about the place where you actually pass arrayType, and state that it is the same type that globalArrayType should eventually be, but we haven't had an opportunity to set it yet.