Only set lim for {} if !known_length
Fix qsort() crash for incomplete arrays
Keep array inits sorted while adding

Also tidied code + added free:s.
Includes urealloc changes which attempt to zero memory if the grow size
is known
Fixed braced struct initialisation

If braced, we were only adding the init for the first member
Better scalar init debugging
ICWs for struct init overrides
Bounds check on designated array initialisation
Test file tidy up
Fixed known-length sorted array initialisation
Fixed re-creation of x[y] expression for array init
Fixed special case of initialisation continuations

Some other edge cases / .space fixes still needed
Missed case for zero-init arrays
Fixed incorrect alignments for arrays