[scripting] Provide conversion functions for AbstractClient
If no conversion functions are provided for a QObject-subclass, then
QScriptEngine will use QScriptEngine::newQObject() method without any
special options to convert an instance of that QObject-subclass to a
QScriptValue. However, it's very important that every client object is
wrapped with PreferExistingWrapperObject option. We need that option
because a script may set a property on a client object and that property
must remain until it's deleted by the script.
Test Plan: New test.
Reviewers: KWin, davidedmundson
Reviewed By: KWin, davidedmundson
Subscribers: davidedmundson, kwin
Differential Revision: https://phabricator.kde.org/D24944