Add SMGAbstractObject to SMGObject hierarchy proper
Add the SMGAbstractObject interface into the SMGObject hierarchy.
Also, inline SMGObject constructors with default params and use UniqueIdGenerator for SMGObjects.
Add the SMGAbstractObject interface into the SMGObject hierarchy.
Also, inline SMGObject constructors with default params and use UniqueIdGenerator for SMGObjects.