add a unit test for recall list manager object
add some debugging output to recall dialog when dismissing units
partially fix 23076 (don't hold std::vector<unit> in recall dialog)

After this commit 9e7dc5ba008298d823c13cff214f7477601b5efd which
introduced reference counted unit pointers, the recall dialog
began to fail assertions. The problem was that it was making
private copies of all units, and when units get deleted this list
got out of sync. I'm not totally sure exactly what mechanism was
making it work before, but this commit which shares the units list
between the different gui elements prevents the assertion failure.

Note that there is still a bug, in that the unit preview pane at
left still gets out of sync somehow...
fully fix bug #23076

This commit keeps the various UI elements of the recall, unit list
dialogs in sync by passing a smart pointer to the underlying set
of units between them. This seems to fix all of the problems
mentioned in 23076, preventing assertion failures and mismatches
between the unit list and the preview pane.
Merge branch 'test_recall_list'