Duplicate storage of nuclide data when depleting
When running a depletion simulation, we are storing nuclide number data twice; once in the number attribute (an instance of the AtomNumber class), and then again on the C side via the shared library. This double storage means OpenMC uses more memory than it needs to. This could become troublesome for problems that use large depletion chains with thousands of nuclides, reactions, and materials.
One potential way of addressing this is refactoring AtomNumber into two classes with the same interface: an AtomNumberPython class that is a copy of the current AtomNumber class, and an AtomNumberC class that has the same interface as AtomNumberPython but exclusively interfaces with the C shared library.
This issue can be closed when a PR exists that eliminates the duplicate storage.