change CodeInfo compression from Array to String
String is simpler and smaller (since we do not yet have a Buffer{UInt8}
type, which might be almost as simple) making it easier to manipulate.
Combined with the previous changes, this lets us eliminate many more
relocations from the image (previously every Array->data), which is
quite a few megabytes of array header objects simply gone.
MASTER:
sysimg size breakdown:
sys data: 79207516
isbits data: 58603452
symbols: 463610
tags list: 1078555
reloc list: 4491653
gvar list: 118848
fptr list: 214000
.text 11109176
.data 144184704
BEFORE (moving existing Strings):
sysimg size breakdown:
sys data: 75146604
isbits data: 62679532
symbols: 463411
tags list: 1015525
reloc list: 4481370
gvar list: 118688
fptr list: 213952
.text 11129192
.data 144126152
AFTER (making CodeInfo into Strings):
sys data: 71348124
isbits data: 63789244
symbols: 463411
tags list: 933984
reloc list: 4398377
gvar list: 118688
fptr list: 213904
.text 11132968
.data 141272824