More memory leak fixes.
Broke another circular pointer dependency by turning shared_ptrs into weak_ptrs. Added code to tidy up CFI to plug those leaks. Added virtual destructor to NodalUtil so that the derived classes can be deleted.
Broke another circular pointer dependency by turning shared_ptrs into weak_ptrs. Added code to tidy up CFI to plug those leaks. Added virtual destructor to NodalUtil so that the derived classes can be deleted.