Deallocation of packed batches
Right now, with StatesPack=yes, Octopus uses twice the memory it should. This is because packed batches keep the unpacked version of the data in memory. With this change, the unpacked memory is deallocated when packing.
This induces some extra copies, so it's not ideal for GPUs. So the behavior will be controlled by a variable.