Improved I / J / K loop variable tracking and added more AST simplifiers.

Summary: This change improves the I / J / K variable loop to add the __cx, __cy and __cz border offsets so that the main loop now tracks from `0` to `width + border * 2`, instead of previously where it was tracking `-border` to `width + border`.  Along with this have been the addition of more AST simplifiers, which have allowed me to identify where the array index exception is occurring (offsets are not correctly being applied to `i`, `j` and `k`).

Test Plan: Run `ProceduralGenCompiler` and verify that the output is easier to read than before.

Reviewers: Sabre070

Reviewed By: Sabre070

Maniphest Tasks: T46

Differential Revision: http://code.redpointsoftware.com.au/D46