CO hash join and memory leak fix

In the original version, the memory for ControlDoublePrivate where not feed. I have fixed this by the use of QSharedPointer. I have also removed the hash table for the ControlObject and stored the pointer of the creating ControlObject into ControlDoublePrivate instead.