Free unnecessary proxy memory
This is an improvement to reduce the memory footprint. Changes are:
- Free the memory allocated for the particle buffers that is only used in
- Free the memory allocated for the foreign cells exchange at the end of the rebuild,
- Use the memory logger for the cells_in and friends allocations in the proxy code,
- Report the "ideal" tasks/cell and links/tasks.
The only consequence is that we need to reallocate when doing a rebuild, which is likely fine since this takes a lot of time anyway.
This saves 8-10% of peak memory on the big DMO runs we are trying to do here in Perth.