Remove CO* constructor to COT. Cleanups.

This is a refactoring, needed before we can continue to introduce additional CO changes. 
I would like to merge this at first because it is already quite big and has no critical changes (I hope)

In addition of some renaming the main part of this patch is that I have decoupled CO from COT. Now it is not required to have a CO to instantiate a COT or COTM or COTW. 

For the next steps, I will try to get rid of the two CO hash storages. I will replace this with a CO cache using smart pointers. Then I will try to get rid of the places where a CO and a COTM is instantiated for the same Key.
I will make CO to a Owner/Master/Creator CO and COT to a Slave/Consumer CO. I hope I can also eleminate COTM. Based on this new structure we can than introduce Int and String CO and do other nice things.