MASSIVE WIP: Defragmenter visitor, all code up to Tuesday evening

Compiles but needs lots of work - start at DefragmentVisitor::visit() - cb_assert(false);

Change-Id: I81f5c372d86cc4089b570168ed0b156367250864