Add ArrayGetValues specilization for ArrayHandleCast
ArrayGetValues for ArrayHandleCast needs to be handled specially as an
UnknownArrayHandle::IsBaseComponentType
check inside the implementation
gives unexpected results for ArrayHandleCast.
With this fix, the values are first copied from the source array type and then casted to the appropriate type before returning.