Fix HeaderTable::erase().

When there is a collission, it moved the neighbor cell
incorrectly. First, it doesn't deinitialize the original
cell's strings, causing a memory leak. Second, it moved
the neighbor in such a way that both the original cell
and the neighbor refer to the same Header object, causing
corruption.