Make cloning available to third party QNodes

Third party QNode subclasses won't have access to QNodePrivate, so move
the clone() operation as a protected static method on QNode itself. This
way third party nodes can implement deep copy in their copy()
implementation as expected.

Change-Id: I59d0414f4ea9c679f2b7e197ea90e36bd8a915a4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>