This refactors the code in HexagonCommonGEP to avoid calling getPointerElementType.
I did this by making GepNode always contain the element type, which meant we needed a new flag to distinguish between the an initial (outer array) index and the subsequent destructuring ones.
There shouldn't be any change in behaviour so no tests.
clang-format: please reformat the code