use extendend section header indices when exceeding SHN_LORESERVE

- overflowing section indices in symbol table are escaped
  (st_shndx field is set to SHN_XINDEX)

- additional .symtab_shndx section contains 32-bit section indices
  (contains zero entries for symbols that have a valid st_shndx value)

- overflowing section count in ELF header (e_shnum) is stored in the
  size field of the first section header (sh_size)

- insert dummy null sections to skip reserved section indices
use -1 as UNKNOWN segment index flag

- increases the maximum size of SegData from 32767 to INT_MAX

- the whole backend uses `int` as segment index