Fix Primitive Array Initialization Lists

This pull request addresses and fully resolves #916 to stop the secondary parse phase from placing semi-colons inside initialization lists.

```gml
int test[] = { 0, 1, 2, 3, 4, 5, 9, 8, 5, 4, 3, 9 };

for (int i = 0; i < 12; i++) {
    show_message(string(test[i]));
}

int test2[2][2] = { { 0, 1},
                    { 3, 4} };

for (int r = 0; r < 2; r++) {
    for (int c = 0; c < 2; c++) {
        show_message(string(test2[r][c]));
    }
}

int arr[2][3][4] = { { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} },
                     { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} } };
                     
for (int r = 0; r < 2; r++) {
    for (int c = 0; c < 3; c++) {
    	for (int n = 0; n < 4; n++) {
        	show_message(string(arr[r][c][n]));
        }
    }
}
```
This is the code gen with 1D, 2D, and 3D primitive arrays.
```cpp
  int test[ ]=
  {
    0, 1, 2, 3, 4, 5, 9, 8, 5, 4, 3, 9
  }
  ;
  for(int i = 0; i < 12; i ++ )
  {
    show_message(toString(test[int(i)] ));
    
  }
  int test2[int(2)] [int(2)]=
  {
    
    {
      0, 1
    }
    ,
    {
      3, 4
    }
    
  }
  ;
  for(int r = 0; r < 2; r ++ )
  {
    for(int c = 0; c < 2; c ++ )
    {
      show_message(toString(test2[int(r)] [int(c)] ));
      
    }
    
  }
  int arr[int(2)] [int(3)] [int(4)]=
  {
    
    {
      
      {
        1, 2, 3, 4
      }
      ,
      {
        1, 2, 3, 4
      }
      ,
      {
        1, 2, 3, 4
      }
      
    }
    ,
    {
      
      {
        1, 2, 3, 4
      }
      ,
      {
        1, 2, 3, 4
      }
      ,
      {
        1, 2, 3, 4
      }
      
    }
    
  }
  ;
  for(int r = 0; r < 2; r ++ )
  {
    for(int c = 0; c < 3; c ++ )
    {
      for(int n = 0; n < 4; n ++ )
      {
        show_message(toString(arr[int(r)] [int(c)] [int(n)] ));
        
      }
      
    }
    
  }
  ;
```