as determined by SkinMemoryLeakTest (remove line 180) and a leak tester
https://github.com/andy-goryachev-oracle/Test/blob/main/src/goryachev/apps/LeakTest.java
caused by:
- adding and not removing listeners
- adding and not removing event handlers/filters
- adding and not removing cell factory
- holding unnecessary instance in TreeTableViewSkin.treeTableViewSkin // test-only
NOTES:
1. this fix requires JDK-8294809 ListenerHelper and JDK-8295806 TableViewSkin.
2. there were more memory leaks in this skin than detected by SkinMemoryLeakTest, probably because of cell factory (?). A manual test using LeakTest shows that there are no memory leaks after a) replacing skin, b) moving the components to a new window, and c) removing all the components from the window.