Refactor PiiSocket class hierarchy

QML cannot cope with non-QObject object hierarchies. Changed all socket
classes so that they derive directly from QObject. This is still a
completely broken commit that doesn't compile.