Micro optimize usage of QSet.
Use EnginioString instead of raw QStringLiteral.
Fix signature of XXXChanged signals.
Use smart pointers instead of raw ones and de-inline destructors.

It is simpler, reduces chance of a memory leaks and a code bloat.