Pass through the init-array to insert into

This sorts out the subobject overwrite problem for arrays
Array subobject overwriting - count the current init-array
Struct subobject replacement
Warn on initialisation subobject overrides
Subobject overwrite tests
The start for passing decl_inits through to code gen
Removed superfluous array field
Added designator halt bug