Instrument coordinator components are garbage collectable.
Since we changed the way the ic only keeps a reference of the components via the name string, we now require that the user explicitly holds a reference to the components in memory to prevent them from being picked up by the garbage collector. This is because QCoDeS only holds a `weakref` to the `Instrument`s.
A simple example:
```python
ic= InstrumentCoordinator(...)
for driver in drivers:
ic_comp = SomeICComp(driver)
ic.add_component(ic_comp)
```
If `len(drivers)>1` this results in only the last ic component added to still exist every iteration. A workaround can be assign each component to some variable, or append to a list. Then an explicit reference still exists, so it won't get deleted, but it shouldn't be necessary and is not intuitive in the way we work with the ic components now.
A similar problem should occur when you do:
```python
ic.add_component(SomeICComp(driver))
```
issue