Fix genesis bug that manifested in scav_vector().
scav_vector(), when it scavenged a vector backing a hash-table,
invoked scavenge() on a hash-table using an 'n_words' value computed from
sizeof(hash_table), not the sizetab[] function on the table.
This was a right only by accident. If the C struct was slightly different,
the n_words computation might disagree with the number of words that instance
scavenging actually scanned based on the instance header.
This is because write-structure-object would omit a raw slot from C
unless followed by a non-raw slot; and the compensation for dd-length
worked only if no slots had been omitted. So by messing with slot order,
you could violate the assertion at line 168 of gc-common that scavenging
didn't go past the expected end pointer calculated from n_words.