Fixes TArray<T>::operator[]

The previous implementation used reinterpret_cast which is type-unsafe.
Now the compiler throws error if you try to instantiate TArray<int> and
use operator[].

Issue: #34