LavObject: clean up outputs at distruction
Update private_objects.hpp to completely use shared_ptr
Objects.cpp: rewritten to use shared pointers
Memory helper module: knows how to hold smart pointers for external handles