first defragment implementation; does not work yet since slots pointing to a deleted record do not yet have a negative length