First pass at deallocation of intermediate states
Adding deinitialization of intermediate states after assignments and function calls when appropriate (based on dependence of future statements on these states).
Adding deinitialization of intermediate states after assignments and function calls when appropriate (based on dependence of future statements on these states).