overhauled memory allocation and fixed several memory bugs
Pre-releaseI rewrote the functions that allocate and free multidimensional arrays (in "alloc2d.hpp" and "alloc3d.hpp"). This simplifies API, shortening the argument list of some of the functions in the VISFD library. These functions are used throughout the code, and this forced me to revisit all of the places in the code where memory was allocated. In the process, I noticed and fixed some memory allocation errors that had crept in. The "filter_mrc" program now passes all valgrind checks when run on the tests in the tests/ directory. I also added move constructors for the "MrcSimple" and "CompactMultiChannelImage3D" classes. (Hopefully all of the classes in the VISFD code now obey the rule of the big five.)
(I also added some very minor features to "morphology.hpp" (the "top hat" transformations), but they are not yet accessible from the filter_mrc program.)