Protect KNSCore::Engine access
Going by the backtrace in https://bugs.kde.org/show_bug.cgi?id=439103 (and suspicions from other places) it seems that it must be possible to create a KNSBackend instance, and then have it wait long enough that some things will still be ongoing, but the engine is deleted. It seems as though what might be going on is that just trusting the context objects to be sufficient protection for some connections (unsurprisingly), and so we need to do some more checks to ensure we don't suddenly end up doing some dangling pointer accessing.
The majority functionality in this patch is swapping the raw pointer for a QPointer, and then adding in checks. The whitespace changes are due to those checks.