Improve array handling

Moved the de-arrayification of types into GetCallChainReturnType() with
the exception of the "foreach()" context. Some of the previously false
positive tests have been fixed for the array support and expanded uppon.