avoid Memory Leak when not using cleanly

- replaced List<COMObject> with WeakCollection, that way COM Proxies get garbage collected if not referenced anymore
- added Weakly nuget package (it's up to you how to cleanly integrate that into your build)