BlockAllocationSupport<T>::Compact () code from sterl (and other blockallocated cleanups)