In some unit tests, OpenMC finalize is called twice in a row without re-initializing the whole simulation. This caused the shared fission bank to be freed twice. Fixed now to check if it is a null pointer, and only free if null. Also initializes this value to null and sets it to null after freeing.
In some unit tests, OpenMC finalize is called twice in a row without re-initializing the whole simulation. This caused the shared fission bank to be freed twice. Fixed now to check if it is a null pointer, and only free if null. Also initializes this value to null and sets it to null after freeing.

paulromano/openmc,walshjon/openmc,amandalund/openmc,smharper/openmc,smharper/openmc,liangjg/openmc,mit-crpg/openmc,paulromano/openmc,mit-crpg/openmc,liangjg/openmc,walshjon/openmc,amandalund/openmc,walshjon/openmc,shikhar413/openmc,smharper/openmc,walshjon/openmc,mit-crpg/openmc,amandalund/openmc,liangjg/openmc,mit-crpg/openmc,amandalund/openmc,paulromano/openmc,shikhar413/openmc,paulromano/openmc,smharper/openmc,shikhar413/openmc,shikhar413/openmc,liangjg/openmc