Preparatory work for single-dereference array element access.

Given the amount of outstanding pull requests I stopped half-way through the work to make it feasible to deal with possible merge conflicts. Since we now have pointers in the compiler we can represent arrays as a pointer to something; start with a pointer to a struct array for now.