Move TrackDAO save logic for deleted TrackInfoObjects to ~TrackInfoObject

Don't run TrackInfoObject database interactions the moment its TrackPointer
refcount drops to 0. Instead move this logic into the TrackInfoObject destructor
and run it on the next time through the Qt event loop. This helps prevent
action-at-a-distance re-entrancy bugs where you need to drop a TrackPointer
reference but your context isn't safe to do so.
(I added it post-merge)