For starters, QQmlEngine::networkAccessManager is not reentrant and and
would give
us a warning along the lines of:
```
QObject::QObject|QNetworkAccessManager::QNetworkAccessManager QObject:
Cannot create children for a parent that is in a different thread.
(Parent is QQmlApplicationEngine(0x5563bf8dcad0), parent's thread is
discover(68504)/ QObject::QObject|QNetworkAccessManager::QNetworkAccessManager QObject: Cannot create children for a parent that is in a different thread.QThread(0x5563bf825f70), current thread is
(Parent is QQmlApplicationEngine(0x5563bf8dcad0), parent's thread is QThread(0x5563bf825f70), current thread is QSGRenderThread(0x5563bfef7830)
```
That happens because Icon::findIcon is called from Icon::updatePaintNode which
which is called from the render thread.
This patch changes it so the QNAM bits happen upon setSourcepolish, so downloading
downloading the image will be handled by the main thread and we will only be grabbing it
only be grabbing it from an already prepared QImage.
This patch also includes a QMutex, to keep both threads split.